【发布时间】:2017-04-21 03:15:49
【问题描述】:
我想合并两个 csv 文件中的特定列,并使用文件名作为列标题。在此示例中,我想将每个文件的第三列合并到一个数据框中。 csv 文件的行数和列数相同。
样本数据集:
文件1.csv
V1,V2,V3,V4
1,1986,64,61
文件2.csv
V1,V2,V3,V4
1,1990,100,61
预期结果:
"File1","File2"
64,100
这是我的脚本:
my.file.list <- list.files(pattern = "*.csv")
my.list <- lapply(X = my.file.list, FUN = function(x) {
read.csv(x, header=TRUE,colClasses = c("NULL", "NULL", "numeric", "NULL"), sep = ",")[,1]
})
my.df <- do.call("cbind", my.list)
如何根据文件名添加列标题?
我试过这个:
sub('.csv','',basename(my.file.list),fixed=TRUE)
但我不知道如何将其添加为标题。
我将不胜感激。
【问题讨论】:
-
请向我们展示您的预期输出。
use the filename as the column header是什么意思? -
感谢您的评论。我编辑了我的问题。
-
两个文件的行数不一样怎么办?
-
两个文件的行数和列数相同。我尝试使用 basname(),但我不知道如何将它们作为标题添加到输出文件中。