【问题标题】:How to merge several csv file to a single csv file in R by adding columns?如何通过添加列将多个 csv 文件合并到 R 中的单个 csv 文件?
【发布时间】:2012-09-18 13:10:06
【问题描述】:

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

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

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

提前致谢

【问题讨论】:

  • 是否希望缺失的字段显示为 NA?

标签: r csv export


【解决方案1】:

如果文件不是太大,即很容易放入内存,您可以使用 cbind 和 lapply 的组合创建一个可以使用 write.csv 保存的大 data.frame。看起来像这样:

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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    相关资源
    最近更新 更多