2016-07-13 5 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)