我想将几个步骤合并到一个R脚本中,以执行以下操作:
1.加载一个.tsv文件接另一个(在一个目录中有数百个)
1.融合这些文件中的3个特定列,以形成新列“Fusion”
1.我把这些文件输出到旧的.tsv文件中(这样我就不会得到几百个新文件)
下面的步骤是可行的,但恐怕它们非常笨拙(我真的不擅长编码),而且它们不是批处理的,必须一个接一个地放入。
test <- read.table(
"1.tsv",
sep="\t", header=TRUE)
test$Fusion <- paste0(test$amino_acid,test$v_gene,test$j_gene)
write.table(test, file = "1.tsv", append = FALSE, quote = TRUE, sep = "\t",
eol = "\n", na = "NA", dec = ".", row.names = TRUE,
col.names = TRUE, qmethod = c("escape", "double"),
fileEncoding = "")
正如您所看到的,文件必须手动一次一个地放入,并且数据框“test”似乎也是多余的(?)。
如果有人能把这些放在一个脚本中,那就太好了,这个脚本只需使用R的工作目录,一个接一个地浏览文件,添加一个新的“Fusion”列,写入新的.tsv文件,然后继续前进。
谢谢你的帮助!
1条答案
按热度按时间9cbw7uwe1#
下面是我将使用您的方法为pwd中的每个文件循环代码所做的工作。确保在目标. tsv文件所在的目录中运行此脚本。
样品输入
被转化成
要删除每个元素周围的引号,请将
quote
设置为FALSE
;要删除每行开头的数字,请将row.names
设置为FALSE
。输出现在如下所示
我不确定你所说的多余是指你想去掉三根柱子,只显示融合的柱子吗?
您可以使用类似下面的方法来标识冗余列