Ich versuche, eine mutate_each
mit purr::map
für eine Gruppe von Tabellen erstellt von tidyr::nest
.muate_each auf tidyr geschachtelte Tabelle gibt "Unbekannte Eingaben"
Unten ist ein Beispiel dafür, was ich versuche zu tun, und der resultierende Fehler:
library(tidyr)
library(gapminder)
library(dplyr)
library(purrr)
by_country <- gapminder %>%
group_by(continent, country) %>%
nest() %>%
mutate(data2 = map(data, ~ mutate_each(.,funs(as.numeric))))
gibt: dieses Problem
Error: Unknown inputs
Was ist die Ursache? Gibt es eine Lösung? Ich könnte apply
anstelle von mutate_each
verwenden, aber das entfernt rownames.
EDIT: Von der ersten Antwort scheint es der Zweck war nicht klar. Vielleicht versuche ich etwas falsch zu machen. Lassen Sie mich erklären.
Wenn Sie das tun:
by_country <- gapminder %>%
group_by(continent, country) %>%
nest()
Sie haben:
by_country$data[[1]]
Source: local data frame [12 x 4]
year lifeExp pop gdpPercap
(int) (dbl) (int) (dbl)
1 1952 28.801 8425333 779.4453
2 1957 30.332 9240934 820.8530
3 1962 31.997 10267083 853.1007
4 1967 34.020 11537966 836.1971
5 1972 36.088 13079460 739.9811
6 1977 38.438 14880372 786.1134
7 1982 39.854 12881816 978.0114
8 1987 40.822 13867957 852.3959
9 1992 41.674 16317921 649.3414
10 1997 41.763 22227415 635.3414
11 2002 42.129 25268405 726.7341
12 2007 43.828 31889923 974.5803
Was würde Ich mag laufen wird eine Funktion für jede Spalte; aber separat für jede geschachtelte Tabelle. So würde Ich mag das equevalent der unten auf jeden Tisch laufen:
mutate_each(by_country$data[[1]],funs(as.numeric))
Giving:
Source: local data frame [12 x 4]
year lifeExp pop gdpPercap
(dbl) (dbl) (dbl) (dbl)
1 1952 28.801 8425333 779.4453
2 1957 30.332 9240934 820.8530
3 1962 31.997 10267083 853.1007
4 1967 34.020 11537966 836.1971
5 1972 36.088 13079460 739.9811
6 1977 38.438 14880372 786.1134
7 1982 39.854 12881816 978.0114
8 1987 40.822 13867957 852.3959
9 1992 41.674 16317921 649.3414
10 1997 41.763 22227415 635.3414
11 2002 42.129 25268405 726.7341
12 2007 43.828 31889923 974.5803
Was versuchen Sie zu erreichen? Zeigen Sie möglicherweise die erwartete Ausgabe, wenn der Datenrahmen 'gapminder' als Eingabe verwendet wird? – Gopala
OK. Die Frage wurde aktualisiert. –
Warum nicht: 'gapminder%>% mutate_each_ (Spaß (as.numeric), Namen (gapminder) [sapply (gapminder, is.integer)])%>% group_by (Land, Kontinent)%>% nest() '? – Gopala