2016-07-13 25 views
0

私はRで作業するのがとても新しいですが、次のコードがうまくいくようです。なぜ私は必要な統計を取得していないのですか?ありがとう。ddply:なぜこれは機能しませんか?

> stats <- ddply(Y, "SECT", summarise, mean.EE = mean(EE), 
+          sd.EE = sd(EE), 
+          mean.AA = mean(AA), 
+          sd.AA = sd(AA), 
+          mean.II = mean(II), 
+          sd.II = sd(II)) 
> stats 
    SECT mean.EE sd.EE mean.AA sd.AA mean.II sd.II 
1 H1  NA NA  NA NA  NA NA 
2 H2  NA NA  NA NA  NA NA 
3 H3  NA NA  NA NA  NA NA 
> str(Y) 
'data.frame': 537 obs. of 5 variables: 
$ WORD: chr "a" "a" "a" "a" ... 
$ SECT: chr "H1" "H1" "H1" "H1" ... 
$ EE : num 2 2 2 2 2 ... 
$ AA : num 1.38 1.38 1.38 1.38 1.38 ... 
$ II : num 1 1 1 1 1 1 1 1 1 1 ... 

PS - 私はそれが変数のそれぞれのように見えます知っている(EE、AA、II)を使用してみてください。また

+0

mean関数に 'na.rm = TRUE'を追加してみてください。変数に「NA」がある場合は、すべてを「NA」に変えます。 – Jason

+0

"EE"にNA値はありますか?そうであれば、 'na.rm = TRUE'を使うことができます – akrun

+0

困惑して、これが問題でした。私はddply(na.omit(Y)...)を使って解決しました。 na.rm = TRUEより効率的ですか? –

答えて

0

...何も変化がないが、それは彼らがソートされているという理由だけだdplyr

# install.packages('dplyr') 
library(dplyr) 

meanna <- function(x) mean(x, na.rm = T) 
sdna <- function(x) sd(x, na.rm = T) 

Y %>% 
    group_by(SECT) %>% 
    summarise_each(funs(meanna, sdna), -WORD) 
関連する問題