如何在R中组合多个.csv文件?

时间:2013-12-18 18:49:18

标签: r csv

我有一个包含近2,000个.csv文件的目录。

每个文件都具有以下结构(显示500行中的4个):

                       Date;QOF
1    2004-01-04 - 2004-01-10;9
2    2004-01-11 - 2004-01-17;11
3    2004-01-18 - 2004-01-24;13
4    2004-01-25 - 2004-01-31;13

列“QOF”也是.csv文件的名称,每个文件都有一个唯一的名称(例如“MSTF”,“XQS”等)。我希望合并每个.csv文件中的这一列正在读取的第一个.csv文件,其中还包含日期变量。换句话说,我想保留第一个文件中的所有列,并将所有其他.csv文件中的第二列合并到此文件中。最终结果应该是这样的:

                    Date;QOF;MSTF;XQS
1    2004-01-04 - 2004-01-10;9;10;8
2    2004-01-11 - 2004-01-17;11;11;5
3    2004-01-18 - 2004-01-24;13;31;2
4    2004-01-25 - 2004-01-31;13;45;23

到目前为止,我已经尝试过这个:

filenames <- list.files()

do.call("cbind", lapply(filenames, read.csv, header = TRUE))

1 个答案:

答案 0 :(得分:4)

mybig <- do.call( rbind, lapply( listfiles, function(nam){ 
                       cbind(name=nam, read.file(paste0(nam,".csv"), header=TRUE) )
                                                }
        )              )

未测试。请注意,我故意不遵循您建议的结构。我无法想象一个更混乱的数据结构。您可能正在考虑将该格式用于输出,并且首先需要构建一个数据帧,然后将其写入带有分号分隔符的文件。