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?

questionAnswers(7)

yourAnswerToTheQuestion