我正在尝试合并多个表中的单个列,其中该列在每个表中都有不同的名称。
我有多个表(.txt文件),这些表具有多个列,并且设置如下:
文件1:
Target total_coverage avg_coverage sample1_total_cvg sample1_mean_cvg...
Contig1493 19515 34.18 19515 34
Contig1494 594 18 594 18
Contig1495 50372 40.23 50372 40
Contig1496 1985 21.81 1985 22
.
.
.
文件2:
Target total_coverage avg_coverage sample1_total_cvg sample1_mean_cvg...
Contig1493 22345 33.1 22345 36
Contig1494 466 25 4556 12
Contig1495 50000 30.2 47987 33
Contig1496 4530 26.4 45786 23
.
.
.
以此类推。
在所有表中,前三列的名称相同,其余各列的名称不同(对应于不同的单个样本)
我试图创建一个保留ID和第一列的表,然后将每个表合并到第5列(sampleID_mean_cvg),以便最终表看起来像这样:
Target sample1_mean_cvg sample2_mean_cvg sample3_mean_cvg ...
Contig1493 34 12 22
Contig1494 18 13 22
Contig1495 40 12 13
Contig1496 22 55 21
.
.
.
我已经搜索了很多,并认为我可以使用sapply来找到它。 因此,这就是我一直在尝试的方法。我将所有表都放在一个目录中并且正在做:
smpl.Tables <- list.files(pattern = ".txt")
list.data<-list()
for (i in 1:length(smpl.Tables))
{
list.data[[i]]<-read.table(smpl.Tables[i])
}
names(list.data)<-smpl.Tables
write.csv(sapply(list.data,"[", 5),'contigDepth.csv')
这是我执行代码时得到的:
sample1_FileName sample2_Filename sample3_Filename...
sample1_mean_cvg sample2_mean_cvg sample3_mean_cvg...
1 34 12 22
2 18 13 21
3 40 12 13
4 22 55 21
.
.
.
我无法终生解决在合并每个表的第5列时如何保留第一个列ID的问题。我想我可以进入最终文件并复制粘贴内容,然后删除文件名的第一行...但是必须有一种方法可以做到这一点。有人有什么建议吗?我将非常乐意提供任何帮助!
欢呼