2016-12-21 18 views
1

なぜSE_dailyの値が間違っていますか?私はそれが最も近い整数に丸められることを期待しましたが(小数点が欲しかったのですが)、小数点の答えは完全に間違っています。私は何を取りこぼしたか? CSV出力の複数のカテゴリでグループ化するときの丸め誤差

csv<-csv%>%group_by(id_num)%>%group_by(Month)%>%group_by(Day)%>%mutate(SE_daily=mean(SelfEsteem, na.rm=T)) 
head(csv[,c(1:5,28,181)]) 
> head(csv[,c(1:5,28,181)]) 
Source: local data frame [6 x 7] 
Groups: Day [3] 

    X.1  X id_num Month Day SelfEsteem SE_daily 
    <int> <int> <int> <int> <int>  <int> <dbl> 
1  1  1  29  2 19   4 3.457944 #mean(4,4,3)= 4, expected answer= 3.66666666667 
2  2  2  29  2 19   4 3.457944 
3  3  3  29  2 19   3 3.457944 
4  4  4  29  2 20   4 3.424242 #expected answer= 4 
5  5  5  29  2 21   4 3.318182 #expected answer=4 
6  6  6  29  2 21   4 3.318182 

ヘッド:

structure(list(X.1 = 1:6, X = 1:6, 
    id_num = c(29L, 29L, 29L, 29L, 29L, 29L), 
    Month = c(2L, 2L, 2L, 2L, 2L, 2L), 
    Day = c(19L, 19L, 19L, 20L, 21L, 21L), 
    SelfEsteem = c(4L, 4L, 3L, 4L, 4L, 4L), 
    SE_daily = c(3.45794392523365, 3.45794392523365, 3.45794392523365, 3.42424242424242, 3.31818181818182, 3.31818181818182)), 
    .Names = c("X.1", "X", "id_num", "Month", "Day", "SelfEsteem", "SE_daily"), 
    row.names = c(NA, -6L), 
    class = "data.frame") 
+0

あなたが構造中に現在の形 'エラーでエラー(リストが(そこにある' dput'構造を再投稿でしX.1 = 1:6、X = 1:6、ID_NUM = C (29L、29L、29L、: オブジェクト 'Day' not found ' – OdeToMyFiddle

+0

よりそれのためのks。なぜ出力が間違っていたのか分かりません....私は元々 'dput(head(csv))'をしました。私はそれをdata.frameに変換してから再度入力しなければならなかった – Rilcon42

+1

あなたが提供したデータサンプルであなたのコードを実行すると、期待される答え(各 'Day'の丸められていない平均)が得られます。 'group_by(id_num)%>%group_by(Month)%>%group_by(Day)'の最終結果は、各 'group_by'が前の値を上書きするので、' Day'だけをグループ化することです。 3つの列すべてでグループ化する場合は、 'group_by(id_num、Month、Day)'を実行します。 – eipi10

答えて

2

私はSE_dailyの予想出力を得ました。それはgroup_byコマンドをパイプの代わりに、単一のコマンドでそれらを置くことによって、あなたが共有する複数のid_numMonthsを見ている可能性があります共通Day

library(dplyr) 
csv %>% 
    group_by(id_num, Month, Day) %>% 
    mutate(SE_daily=mean(SelfEsteem, na.rm=TRUE)) 
(提供されたデータ構造は、データセット全体のサブセットのみであると仮定して)

出力

Source: local data frame [6 x 7] 
Groups: id_num, Month, Day [3] 

    X.1  X id_num Month Day SelfEsteem SE_daily 
    <int> <int> <int> <int> <int>  <int> <dbl> 
1  1  1  29  2 19   4 3.666667 
2  2  2  29  2 19   4 3.666667 
3  3  3  29  2 19   3 3.666667 
4  4  4  29  2 20   4 4.000000 
5  5  5  29  2 21   4 4.000000 
6  6  6  29  2 21   4 4.000000 
関連する問題