【问题标题】:Calculate means of variables indexed by preceding dates using R使用 R 计算由先前日期索引的变量的平均值
【发布时间】:2016-05-30 09:16:08
【问题描述】:

我想生成一个使用 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。可以通过按日期索引来完成吗?任何帮助将不胜感激。

【问题讨论】:

  • 请展示一个可重现的小例子和预期的输出
  • 请向我们提供可重现的示例。尝试分享您的输入、您所做的(代码)和预期结果的 sn-p。

标签: r date indexing


【解决方案1】:
     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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 2020-01-28
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 2018-08-26
    相关资源
    最近更新 更多