将多个csv文件平均分配到r中的1个平均文件中

时间:2015-04-22 16:08:26

标签: r csv merge aggregate

我有大约300个风速,温度,压力等的csv文件列,每行与2007年到2012年的时间不同。每个文件来自不同的位置。我想将所有文件合并为一个,这是所有300个文件的平均值。因此,新文件将具有相同数量的每个单独文件的行和列,但每个单元格将是所有300个文件的相应平均值。是否有捷径可寻?

1 个答案:

答案 0 :(得分:4)

关注this post,您可以将所有文件读入列表中(此处我假设他们已将其命名为weather * .csv):

csvs <- lapply(list.files(pattern="weather*.csv"), read.csv)

剩下的就是取所有数据帧的平均值。你可能会尝试类似的东西:

Reduce("+", csvs) / length(csvs)

如果您只想添加列的子集,则可以使用相应的列子集传递Reduce数据帧列表。例如,如果您想从每个列中删除第一列,您可以执行以下操作:

Reduce("+", lapply(csvs, "[", -1)) / length(csvs)