Я хочу использовать dplyr mutate()
для создания нескольких новых столбцов в фрейме данных. Имена столбцов и их содержимое должны быть динамически сгенерированы.
Пример данных из диафрагмы:
require(dplyr)
data(iris)
iris <- tbl_df(iris)
Я создал функцию для изменения моих новых столбцов из переменной Petal.Width
:
multipetal <- function(df, n) {
varname <- paste("petal", n , sep=".")
df <- mutate(df, varname = Petal.Width * n) ## problem arises here
df
}
Теперь я создаю цикл для построения моих столбцов:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
Однако, поскольку mutate считает, что varname является литеральным именем переменной, цикл создает только одну новую переменную (называемую varname) вместо четырех (называемый petal.2 - petal.5).
Как я могу получить mutate()
для использования моего динамического имени в качестве имени переменной?