Voglio usare dplyr::mutate()
per creare più nuove colonne in un frame di dati. I nomi delle colonne e il loro contenuto dovrebbero essere generati dinamicamente.
Dati di esempio dall'iride:
library(dplyr)
iris <- tbl_df(iris)
Ho creato una funzione per mutare le mie nuove colonne dalla Petal.Width
variabile:
multipetal <- function(df, n) {
varname <- paste("petal", n , sep=".")
df <- mutate(df, varname = Petal.Width * n) ## problem arises here
df
}
Ora creo un ciclo per costruire le mie colonne:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
Tuttavia, poiché mutate pensa che varname sia un nome di variabile letterale, il ciclo crea solo una nuova variabile (chiamata varname) invece di quattro (chiamata petalo.2 - petalo 5).
Come posso mutate()
usare il mio nome dinamico come nome variabile?
dplyr
ha un'intera vignetta sulla valutazione non standard
mutate_
, e in realtà non è ovvio dalle altre funzioni come usarla.