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