将多个 csv 文件平均为 r 中的 1 个平均文件

Average multiple csv files into 1 averaged file in r

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

this post 之后,您可以将所有文件读入一个列表(这里我假设它们被命名为 weather*.csv):

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

剩下的就是取所有这些数据帧的平均值。您可以尝试类似的方法:

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

如果您只想添加列的子集,您可以传递 Reduce 包含适当列子集的数据框列表。例如,如果你想从每一列中删除第一列,你可以这样做:

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