如何通过添加列将多个csv文件合并到R中的单个csv文件?

时间:2012-09-18 13:10:06

标签: r csv export

我有一系列.csv个文件,这些文件是作为R中for循环(基于变化的变量STOCKNAME)的输出创建的。每个csv文件名为XXXX.csv,其中XXXX是for循环中使用的名称。每个csv文件都有三列但行的大小不同。我想创建一个包含其中所有不同列的单个csv文件。

if csv files 1 is like C1 C2 
and 
csv file 2 is C3 C4 

我希望我的最终输出是像C1 C2 C3 C4这样的csv文件。

提前致谢

1 个答案:

答案 0 :(得分:0)

如果文件不是太大,即容易适合内存,你可以使用cbind和lapply的组合来创建一个可以使用write.csv保存的大数据框。在那看起来像:

fnames = list.files()
big_list = lapply(fnames, read.csv)
big_data = do.call("cbind", big_list)
write.csv(big_data, file = "big.csv")

要解决不同行数的问题,请追加NA,直到行长度相等。在将各个文件合并为一个大对象之前,您必须这样做。找到最大的对象,即大多数行,使用类似的东西来完成:

max_nrow = max(sapply(big_list, nrow))