Wie angewiesen (https://github.com/hadley/dplyr/issues/1800) poste ich diese Frage hier.
Wie kann man diese Variation beim Verschachteln eines Datenrahmens am besten ausführen? Ich wollte tidyr::nest()
weil ich nicht wollte, dass die anderen Variablen in Datenrahmen vergraben sind – ich wollte sie als einzelne Listenspalten. Sthg so:
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]>
Seitdem habe ich einen anderen Weg gefunden, dies mit purrr::transpose()
zu tun:
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]>
Ich denke, der einfachste Weg ist wahrscheinlich:
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarize(gear = list(gear), wt = list(wt))
Ich bin mir nicht sicher, ob dies eines neuen Verbs der obersten Ebene würdig ist oder nicht.
Könnten Sie etwas mehr Informationen zum breiteren Kontext geben?
Ihr Weg, das Ergebnis zu erstellen, ist viel sauberer.
Der unmittelbare Auslöser war das Erstellen von Beispielen, um herauszufinden, warum ich bestimmte Datenrahmen nicht unnest()
, was sich als Problem mit dplyr::combine()
herausstellte (https://github.com/hadley/dplyr/ Ausgaben/1780).
Ich werde schließen. Wenn dies im wirklichen Leben von Bedeutung ist, wird es wieder auftauchen.
Wenn ich die letzte Lösung sehe, wird mir klar, dass summarise_each()
eine weitere Option ist.
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]>
Hilfreichster Kommentar
Ich denke, der einfachste Weg ist wahrscheinlich:
Ich bin mir nicht sicher, ob dies eines neuen Verbs der obersten Ebene würdig ist oder nicht.
Könnten Sie etwas mehr Informationen zum breiteren Kontext geben?