2017-10-08 54 views
0

我遇到了group_by的一些問題。我知道我的分組變量有兩個級別,但是group_by只返回其中的一個。group_by不返回分組變量中的所有級別

我在做什麼錯?

y是我的分組variabel兩個級別,但該命令返回此輸出只有一行:

mean Q10 Q50 Q90 
    1 16.5 1.1 7.5 49 

下面的代碼重現的問題。

#A dataset: 
v <- c(1,2,3,4,5,10,20,30,40,50) 
y <- rep(0:1, each = 5) 
a <- as.data.frame.matrix(cbind(v,y)) 

#The group_by command that doesn't work  
a %>% group_by(y) %>% summarize(mean = mean(v), 
            Q10 = quantile(v, 0.1, type=6), 
            Q50 = quantile(v, 0.5, type=6), 
            Q90 = quantile(v, 0.9, type=6)) 

回答

2

你可能已經裝載dplyrplyr所以它使用了錯誤的summarize

a %>% 
    group_by(y) %>% 
    plyr::summarize(mean = mean(v), 
      Q10 = quantile(v, 0.1, type=6), 
      Q50 = quantile(v, 0.5, type=6), 
      Q90 = quantile(v, 0.9, type=6)) 
# mean Q10 Q50 Q90 
# 1 16.5 1.1 7.5 49 

a %>% 
    group_by(y) %>% 
    dplyr::summarize(mean = mean(v), 
      Q10 = quantile(v, 0.1, type=6), 
      Q50 = quantile(v, 0.5, type=6), 
      Q90 = quantile(v, 0.9, type=6)) 
# # A tibble: 2 x 5 
#  y mean Q10 Q50 Q90 
# <dbl> <dbl> <dbl> <dbl> <dbl> 
# 1  0  3  1  3  5 
# 2  1 30 10 30 50 
+0

你說得對 - 我剛剛意識到這一點,並且來到這裏刪除了這個問題。謝謝你的回覆。 –