рдирд┐рд░реНрджреЗрд╢рд╛рдиреБрд╕рд╛рд░ (https://github.com/hadley/dplyr/issues/1800), рдореИрдВ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдбреЗрдЯрд╛ рдлреНрд░реЗрдо рдиреЗрд╕реНрдЯ рдХрд░рдиреЗ рдкрд░ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдореИрдВ tidyr::nest()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЕрдиреНрдп рдЪрд░ рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо рдореЗрдВ рджрдмреЗ рд╣реЛрдВ - рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реВрдЪреА рдХреЙрд▓рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЗрд╕ рддрд░рд╣ рд╕реНрдЯрдЧ:
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarize(gear = split(gear, cyl),
wt = split(wt, cyl))
#> Source: local data frame [3 x 3]
#>
#> cyl gear wt
#> <dbl> <list> <list>
#> 1 4 <dbl [11]> <dbl [11]>
#> 2 6 <dbl [7]> <dbl [7]>
#> 3 8 <dbl [14]> <dbl [14]>
рддрдм рд╕реЗ, рдореБрдЭреЗ purrr::transpose()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдорд┐рд▓рд╛:
library(purrr)
library(dplyr)
library(tidyr)
mtcars %>%
group_by(cyl) %>%
nest(gear, wt) %>%
bind_cols(transpose(.$data)) %>%
select(-data)
#> Source: local data frame [3 x 3]
#>
#> cyl gear wt
#> <dbl> <list> <list>
#> 1 6 <dbl [7]> <dbl [7]>
#> 2 4 <dbl [11]> <dbl [11]>
#> 3 8 <dbl [14]> <dbl [14]>
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╢рд╛рдпрдж рд╣реИ:
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarize(gear = list(gear), wt = list(wt))
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирдИ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдХреНрд░рд┐рдпрд╛ рдХреЗ рдпреЛрдЧреНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдХреНрдпрд╛ рдЖрдк рд╡реНрдпрд╛рдкрдХ рд╕рдВрджрд░реНрдн рдкрд░ рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?
рдкрд░рд┐рдгрд╛рдо рдмрдирд╛рдиреЗ рдХрд╛ рдЖрдкрдХрд╛ рддрд░реАрдХрд╛ рдмрд╣реБрдд рд╕рд╛рдл рд╣реИред
рддрддреНрдХрд╛рд▓ рдЯреНрд░рд┐рдЧрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдореИрдВ unnest()
рдХреБрдЫ рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛, рдЬреЛ dplyr::combine()
(https://github.com/hadley/dplyr/) рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рдЧрдпрд╛ред рдореБрджреНрджреЗ/1780)ред
рдореЗрдВ рдмрдВрдж рдХрд░ рджреВрдБрдЧрд╛ред рдЕрдЧрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╕рд╛рдордиреЗ рдЖрдПрдЧрд╛ред
рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рджреЗрдЦрдХрд░ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ summarise_each()
рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarise_each("list", gear, wt)
#> Source: local data frame [3 x 3]
#>
#> cyl gear wt
#> <dbl> <list> <list>
#> 1 4 <dbl [11]> <dbl [11]>
#> 2 6 <dbl [7]> <dbl [7]>
#> 3 8 <dbl [14]> <dbl [14]>
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╢рд╛рдпрдж рд╣реИ:
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирдИ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдХреНрд░рд┐рдпрд╛ рдХреЗ рдпреЛрдЧреНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдХреНрдпрд╛ рдЖрдк рд╡реНрдпрд╛рдкрдХ рд╕рдВрджрд░реНрдн рдкрд░ рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?