使用R计算由先前日期索引的变量的平均值

时间:2016-05-30 09:16:09

标签: r date indexing

我想生成一个平均温度的数据框,该数据框是使用R记录在之前的日期。

例如,如果数据框包含:

Date,        Temperature
2009-08-15   15
2009-08-16   14
2009-08-17   10
2009-08-18   17
2009-08-19   15
2009-08-20   14
2009-08-21   15
2009-08-22   13
2009-08-23   11
2009-08-24   18

我想创建一个新的数据框,其中包括:

Date,       Temperature,   2day_Mean_Temp,   5day_Mean_Temp
2009-08-15   15            NA                NA
2009-08-16   14            14.5              NA
2009-08-17   10            12                NA
2009-08-18   17            13.5              NA
2009-08-19   15            16                14.2
2009-08-20   14            14.5              14
2009-08-21   15            14.5              14.2
2009-08-22   13            14                14.8
2009-08-23   11            12                13.6
2009-08-24   18            14.5              14.2

2day_Mean_Temp将是日期和前一天记录的所有温度的平均值,5day_Mean_Temp将是记录的所有温度和日期和四天的平均值之前。

我不确定如何计算2day_Mean5day_Mean。可以通过按日期索引来完成吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

     Use the code below for your desired output

      for(j in 2:length(df$state)){
      df$twoday_Mean_Temp[j] <- (df$state[j]+df$state[j-1])/2
    }

    for(j in 5:length(df$state)){
      df$fiveday_Mean_Temp[j] <- (sum(df$state[j-1:4])+df$state[j])/5
    }

    print(df)

             Date state twoday_Mean_Temp fiveday_Mean_Temp
    1  2009-08-15    15               NA                NA
    2  2009-08-16    14             14.5                NA
    3  2009-08-17    10             12.0                NA
    4  2009-08-18    17             13.5                NA
    5  2009-08-19    15             16.0              14.2
    6  2009-08-20    14             14.5              14.0
    7  2009-08-21    15             14.5              14.2
    8  2009-08-22    13             14.0              14.8
    9  2009-08-23    11             12.0              13.6
    10 2009-08-24    18             14.5              14.2