Seperti yang diarahkan ( https://github.com/hadley/dplyr/issues/1800 ), saya memposting pertanyaan ini di sini.
Apa cara terbaik untuk melakukan variasi ini dalam menyusun bingkai data? Saya tidak ingin menggunakan tidyr::nest()
karena saya tidak ingin variabel lain terkubur dalam bingkai data -- saya menginginkannya sebagai kolom daftar individual. Seperti ini:
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]>
Sejak itu, saya menemukan cara lain untuk melakukannya menggunakan 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]>
Saya pikir cara paling sederhana mungkin:
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarize(gear = list(gear), wt = list(wt))
Saya tidak yakin apakah ini layak untuk kata kerja tingkat atas yang baru atau tidak.
Bisakah Anda memberikan sedikit lebih banyak info tentang konteks yang lebih luas?
Cara Anda membuat hasilnya jauh lebih bersih.
Pemicu langsungnya adalah membuat contoh untuk mencari tahu mengapa saya tidak bisa unnest()
bingkai data tertentu, yang ternyata menjadi masalah dengan dplyr::combine()
(https://github.com/hadley/dplyr/ masalah/1780).
saya akan tutup. Jika ini penting dalam kehidupan nyata, itu akan muncul lagi.
Melihat solusi terakhir membuat saya menyadari summarise_each()
adalah pilihan lain.
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]>
Komentar yang paling membantu
Saya pikir cara paling sederhana mungkin:
Saya tidak yakin apakah ini layak untuk kata kerja tingkat atas yang baru atau tidak.
Bisakah Anda memberikan sedikit lebih banyak info tentang konteks yang lebih luas?