我有如下的数据帧列:- [R dplyr - rollmean使用组由
(找到图像,如果数据不是按格式)
Sample Data
date id name loc mean count mean
9/6/2016 kar1 AAA 100004 0 1
9/8/2016 kar1 AAA 100004 0 3
9/9/2016 kar1 AAA 100004 0 4
9/10/2016 kar1 AAA 100004 0 5
9/11/2016 kar1 AAA 100004 0 6
9/12/2016 kar1 AAA 100004 0 7
9/13/2016 kar1 AAA 100004 0 8
9/14/2016 kar1 AAA 100004 0 9
9/7/2016 blr1 BBB 100004 0 2
正尝试计算((第7天轧制平均值))基于id,name,loc计数字段的3天滚动平均值(前3天和后3天) 但结果不符合预期。
发现下面的代码:
fnrollmean <- function(x) rollmean(df$count,7,na.pad=TRUE,align="center")
rollmeandf <- df %>% group_by(id,name,loc) %>% arrange(id,name,loc) %>% mutate(funs=fnrollmean(df$count))
我得到错误:
错误的eval(替代(表达式),ENVIR,enclos):不兼容的尺寸 (9),预计8(组大小)或1
如果我只是做:
test2 <- df %>% mutate(funs=fnrollmean(df$count))
它的工作原理是通过考虑所有错误的疾病来计算。
请让我知道如果我错过了什么或任何工作。
预期结果:
date id name loc mean count mean
9/6/2016 kar1 AAA 100004 0 1 NA
9/8/2016 kar1 AAA 100004 0 3 NA
9/9/2016 kar1 AAA 100004 0 4 NA
9/10/2016 kar1 AAA 100004 0 5 4.8
9/11/2016 kar1 AAA 100004 0 6 6
9/12/2016 kar1 AAA 100004 0 7 NA
9/13/2016 kar1 AAA 100004 0 8 NA
9/14/2016 kar1 AAA 100004 0 9 NA
9/7/2016 blr1 BBB 100004 0 2 NA
由于
你'fnrollmean'功能需要使用传递的 'X' 的说法进入它(而不是'df $ count')。在你调用'mutate'时,你应该使用'count',而不是'df $ count'。但即使进行这些更改仍会产生错误。我对_zoo_软件包的进一步评论不够熟悉。 – jdobres