でグループを使用してrollmean私は以下のようにデータフレームを持っている:Rのdplyr - 列
(データはフォーマットに従っていない場合は、画像を見つける。)
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日間のローリングを計算しようとしています平均値))3日平均(前3日および3日後) カウントフィールドのid、name、locに基づいていますが、結果は期待どおりではありません。
コードの下に見つける:
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の中
エラー(代替(expr)は、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の呼び出しでは、 'df $ count'ではなく' count'を使うべきです。しかし、これらの変更を加えてもエラーが発生します。私は、_zoo_パッケージにはまだ詳しくは触れていない。 – jdobres