将多个CSV文件平均为R中的1个平均文件

use*_*879 2 csv merge aggregate r

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

jos*_*ber 5

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

csvs <- lapply(list.files(pattern="weather*.csv"), read.csv)
Run Code Online (Sandbox Code Playgroud)

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

Reduce("+", csvs) / length(csvs)
Run Code Online (Sandbox Code Playgroud)

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

Reduce("+", lapply(csvs, "[", -1)) / length(csvs)
Run Code Online (Sandbox Code Playgroud)