我知道以前有人问过这个问题,但是以前帖子的答案似乎无法解决我的问题。
我有几十个制表符分隔的 .txt 文件。每个文件有两列(“pos”、“score”)。我想将所有“分数”列编译到一个包含多个列的文件中。每个文件中的行数各不相同,它们与编译无关。
如果有人可以指导我如何实现这一点,最好是在 R 中,那将很有帮助。
或者,我的最终目标是从每个文件中读取“分数”列的中位数和平均值。因此,如果可以实现这一点,无论是否编译文件,它都会更有帮助。
谢谢。
更新:
尽管个人代码忍者的想法很吸引人,但我知道这仍然是一个幻想。抱歉没有说清楚。
我试过 lapply 和 Reduce,例如,
> files <- dir(pattern="X.*\\.txt$")
> File_list <- lapply(filesToProcess,function(score)
+ read.table(score,header=TRUE,row.names=1))
> File_list <- lapply(files,function(z) z[c("pos","score")])
> out_file <- Reduce(function(x,y) {merge(x,y,by=c("pos"))},File_list)
考虑到我有可变的行号,我知道这没有任何意义。我也试过 plyr
> files <- list.files()
> out_list <- llply(files,read.table)
以及 cbind 和 rbind。通常我会收到一条错误消息,因为行号不匹配,或者我只是将所有“分数”数据编译到一列中。
关于类似帖子的建议(例如,在 R 中合并多个 csv 文件、同时在列表中合并多个 data.frames以及在具有不同行数的列表中合并多个文件)并没有帮助。
我希望这能解决问题。