0

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

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

我希望我的最终输出是一个 csv 文件,例如C1 C2 C3 C4.

提前致谢

4

1 回答 1

0

如果文件不是太大,即很容易放入内存,您可以使用 cbind 和 lapply 的组合创建一个大的 data.frame,可以使用 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))
于 2012-09-18T13:36:53.837 回答