Chcę użyć dplyr::mutate()
do utworzenia wielu nowych kolumn w ramce danych. Nazwy kolumn i ich zawartość powinny być generowane dynamicznie.
Przykładowe dane z tęczówki:
library(dplyr)
iris <- tbl_df(iris)
Utworzyłem funkcję do mutowania moich nowych kolumn ze 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ę do budowania moich kolumn:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
Jednak ponieważ mutate myśli, że nazwa_zmiennej jest dosłowną nazwą zmiennej, pętla tworzy tylko jedną nową zmienną (nazywaną nazwa_zmiennej) zamiast czterech (nazywana płatkiem.2 - płatek.5).
Jak mogę mutate()
użyć mojej dynamicznej nazwy jako nazwy zmiennej?
dplyr
ma całą winietę na niestandardową ocenę
mutate_
, a z innych funkcji naprawdę nie wynika, jak z niej korzystać.