我需要帮助才能获得每个ID 7天的变量E,N和Z的平均值。
数据框为290512 x 5,head
如下所示:
ID Date E N Z
1 2012-03-16 676620.5 4090699 26.827
1 2012-03-16 676620.5 4090699 26.828
1 2012-03-16 676620.5 4090699 26.827
1 2012-03-16 676620.5 4090699 26.828
1 2012-03-16 676620.5 4090699 26.828
1 2012-03-16 676620.5 4090699 26.828
Statments:
ID <- 1:21
; 例如,如果我得到ID = 5的E,我也会在这个obsertavion上获得N和Z,但同时我不能得到ID = 12的障碍。这个数据来自土壤变形和土壤质量确定了全站的目标。
到目前为止,我的解决方案是
df_dm <- df %>%
group_by(ID, Date) %>%
summarise(E_dm = mean(E),
N_dm = mean(N),
Z_dm = mean(Z))
获取日常工作,然后,
m <- 7
df_wm <- sapply(df_dm, function(x) rollapply( x, width = m, by = m, align = "left", FUN = mean))
来自移动平均问题的答案。
答案 0 :(得分:0)
您的示例数据只有一个日期。您想通过7天(例如,按周)的单独窗口计算平均值吗?如果是这样,您可以为每周创建一个具有唯一标识符的新列-keep class !com.yourpackage.example.class { *; }
,并使用该列进行分组,而不是Week
。
或者,您可能希望采用滚动平均值。查看Date
包中的函数rollmean
。例如:
zoo