Możemy użyć data.table
. Konwersja 'data.frame' do 'data.table' (as.data.table(mtcars)
), pogrupowane według 'cyl', otrzymujemy summary
z 'mpg' i przekształcić go list
library(data.table)
as.data.table(mtcars)[, as.list(summary(mpg)), by = cyl]
# cyl Min. 1st Qu. Median Mean 3rd Qu. Max.
#1: 6 17.8 18.65 19.7 19.74 21.00 21.4
#2: 4 21.4 22.80 26.0 26.66 30.40 33.9
#3: 8 10.4 14.40 15.2 15.10 16.25 19.2
lub używając tylko dplyr
, po zgrupowaniu przez "cyl", używamy do
, aby wykonać tę samą operację jak powyżej.
library(dplyr)
mtcars %>%
group_by(cyl) %>%
do(data.frame(as.list(summary(.$mpg)), check.names=FALSE))
# cyl Min. 1st Qu. Median Mean 3rd Qu. Max.
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 4 21.4 22.80 26.0 26.66 30.40 33.9
#2 6 17.8 18.65 19.7 19.74 21.00 21.4
#3 8 10.4 14.40 15.2 15.10 16.25 19.2
lub używając purrr
library(purrr)
mtcars %>%
slice_rows("cyl") %>%
select(mpg) %>%
by_slice(dmap, summary, .collate= "cols")
Można również użyć 'biblioteka (miotła); mtcars%>% group_by (cyl)%>% do (tidy (summary (. $ mpg))) ' –
możesz napisać to jako odpowiedź. Zawsze interesowałem się miotłą. – Alex
Wariacja na temat: 'mtcars%>% group_by (cyl)%>% summary (summary = list (broom :: tidy (summary (mpg))))%>% tidyr :: unnest()' – alistaire