最佳答案
我想使用dplyr::mutate()
在数据帧中创建多个新列。列名及其内容应该是动态生成的。
虹膜数据示例:
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()
使用我的动态名作为变量名?