我想生成一个平均温度的数据框,该数据框是使用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_Mean
和5day_Mean
。可以通过按日期索引来完成吗?任何帮助将不胜感激。
答案 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