19
我注意到,當向dplyr::summarize_at
提供列索引時,將確定要彙總的列不包括分組列。我想知道這是否應該如此,因爲通過這種設計,使用正確的列索引取決於總結列是位於分組列之前還是之後。在列索引中使用dplyr summarise_at
下面是一個例子:
library(dplyr)
data("mtcars")
# grouping column after summarise columns
mtcars %>% group_by(gear) %>% summarise_at(3:4, mean)
## A tibble: 3 x 3
# gear disp hp
# <dbl> <dbl> <dbl>
#1 3 326.3000 176.1333
#2 4 123.0167 89.5000
#3 5 202.4800 195.6000
# grouping columns before summarise columns
mtcars %>% group_by(cyl) %>% summarise_at(3:4, mean)
## A tibble: 3 x 3
# cyl hp drat
# <dbl> <dbl> <dbl>
#1 4 82.63636 4.070909
#2 6 122.28571 3.585714
#3 8 209.21429 3.229286
# no grouping columns
mtcars %>% summarise_at(3:4, mean)
# disp hp
#1 230.7219 146.6875
# actual third & fourth columns
names(mtcars)[3:4]
#[1] "disp" "hp"
packageVersion("dplyr")
#[1] ‘0.7.2’
公告彙總列如何變化取決於分組和分組列的位置。
這在其他平臺上是一樣的嗎?它是一個錯誤還是一個功能?
似乎意,因爲'summarise_at'調用'tbl_nongroup_vars',它得到了tibble不進行分組變量。然後在該組上應用「意思」。 – lukeA
@lukeA,謝謝你檢查出來!我不得不說,如果我必須確定索引並減去分組列的數量,那麼我覺得這非常不直觀。 –
而不是使用'3:4',這樣做會比'vars(disp:hp)'更安全。例如:'mtcars%>%group_by(cyl)%>%summarise_at(vars(disp:hp),mean)' – MrFlick