dplyr - mutate: use nomes de variáveis dinâmicas
Eu quero usardplyr's mutate()
para criar várias novas colunas em um quadro de dados. Os nomes das colunas e seu conteúdo devem ser gerados dinamicamente.
Dados de exemplo da íris:
require(dplyr)
data(iris)
iris <- tbl_df(iris)
Eu criei uma função para alterar minhas novas colunas doPetal.Width
variável:
multipetal <- function(df, n) {
varname <- paste("petal", n , sep=".")
df <- mutate(df, varname = Petal.Width * n) ## problem arises here
df
}
Agora eu crio um loop para construir minhas colunas:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
No entanto, como mutate acha que varname é um nome literal de variável, o loop cria apenas uma nova variável (chamada varname) em vez de quatro (chamada petal.2 - petal.5).
Como posso obtermutate()
usar meu nome dinâmico como nome da variável?