我有一系列.csv
文件被创建为 R 中for
循环的输出(基于不断变化的变量STOCKNAME
)。每个csv
文件都被命名为 for 循环中使用的名称XXXX.csv
。XXXX
每个csv
文件都有三列,但行的大小不同。我想创建一个包含所有不同列的 csv 文件。
if csv files 1 is like C1 C2
and
csv file 2 is C3 C4
我希望我的最终输出是一个 csv 文件,例如C1 C2 C3 C4
.
提前致谢
如果文件不是太大,即很容易放入内存,您可以使用 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))