我想用
dplyr::mutate()
在数据帧中创建多个新列。列名及其内容应动态生成。
来自iris的示例数据:
library(dplyr)
iris <- as_tibble(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),而不是四个(称为花瓣.2-花瓣.5)。
我怎样才能得到
mutate()
将我的动态名称用作变量名?