Chcę użyć dplyr'smutate()
, aby utworzyć wiele nowych kolumn w ramce danych. Nazwy kolumn i ich zawartość powinny być generowane dynamicznie.dplyr - mutate: użyj nazw zmiennych dynamicznych
Przykładowe dane z tęczówki:
require(dplyr)
data(iris)
iris <- tbl_df(iris)
I utworzeniu funkcji mutować moje nowe kolumny z Petal.Width
zmiennej:
multipetal <- function(df, n) {
varname <- paste("petal", n , sep=".")
df <- mutate(df, varname = Petal.Width * n) ## problem arises here
df
}
Teraz tworzę pętlę budować moje kolumny:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
Jednak ponieważ mutate uważa, że nazwa_zmiennej jest literalną nazwą zmiennej, pętla tworzy tylko jedną nową zmienną (nazywaną nazwą varname) zamiast czterech (zwaną płatkiem.2 - płatek.5).
Jak uzyskać mutate()
, aby użyć mojej nazwy dynamicznej jako nazwy zmiennej?
nie będę nalegał na mutacie, pytam, czy to możliwe. Może to tylko mała sztuczka, której nie znam. Jeśli jest inny sposób, posłuchajmy tego. –
wierzę, że jest [miejsce do oglądania] (https://github.com/hadley/dplyr/issues/352#issuecomment-53829862) w pakiecie [lazyeval] (https://github.com/hadley/lazyeval) – baptiste
W tym momencie 'dplyr' ma [całą winietę na nietypową ocenę] (https://cran.r-project.org/web/packages/dplyr/vignettes/nse.html) – Gregor