我有一系列.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文件。
提前致谢
答案 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))