dplyr - mutate: usa nombres de variables dinámicas
Quiero usardplyr's mutate()
para crear múltiples columnas nuevas en un marco de datos. Los nombres de columna y sus contenidos deben generarse dinámicamente.
Datos de ejemplo de iris:
require(dplyr)
data(iris)
iris <- tbl_df(iris)
He creado una función para mutar mis nuevas columnas delPetal.Width
variable:
multipetal <- function(df, n) {
varname <- paste("petal", n , sep=".")
df <- mutate(df, varname = Petal.Width * n) ## problem arises here
df
}
Ahora creo un bucle para construir mis columnas:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
Sin embargo, dado que mutate piensa que varname es un nombre de variable literal, el ciclo solo crea una nueva variable (llamada varname) en lugar de cuatro (llamada petal.2 - petal.5).
Como puedo conseguirmutate()
utilizar mi nombre dinámico como nombre de variable?