我正在使用一个数据集,该数据集每小时读取一次温度,每天 24 小时读取一次,持续 100 多年。我想获得每天的平均温度以减少数据集的大小。标题如下所示:

     YR MO DA HR MN TEMP
  1943  6 19 10  0   73
  1943  6 19 11  0   72
  1943  6 19 12  0   76
  1943  6 19 13  0   78
  1943  6 19 14  0   81
  1943  6 19 15  0   85
  1943  6 19 16  0   85
  1943  6 19 17  0   86
  1943  6 19 18  0   86
  1943  6 19 19  0   87

等 600,000+ 个数据点。

如何运行嵌套函数来计算日平均温度,以便保留 YR、MO、DA、TEMP?
一旦我有了这个,我希望能够查看长期平均值并计算 30 年来一月份的平均温度。我该怎么做呢?

最佳答案

只需一步,您就可以做到这一点:

 meanTbl <- with(datfrm, tapply(TEMP, ISOdate(YR, MO, DA), mean) )

这为您提供了日期时间格式的索引以及值。如果您只想要日期作为字符而没有尾随时间:
meanTbl <- with(dat, tapply(TEMP, as.Date(ISOdate(YR, MO, DA)), mean) )

月平均值可以通过以下方式完成:
 monMeans <- with(meanTbl, tapply(TEMP, MO, mean))

关于r - 如何计算大数据集的平均值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15105670/

10-12 17:08