这个问题在这里已有答案:

我想基于data.frame中的当前变量信息生成多个新列(例如,这里的数据),我可以使用下面列出的脚本生成带有循环的变量,是否可以使用 mutate 命令创建它们在 dplyr 用简洁的命令?例如,将mutate与函数一起使用,应用函数还是循环?

这个要求似乎与Mutating multiple columns in a data frame using dplyrMutate multiple / consecutive columns (with dplyr or base R)所取得的不同,因为我想基于一个原始变量创建具有特定模式的数十个新列 .

data=data.frame(value=1:11,EV=seq(100,150,5))
q<-seq(-0.5,0.5,0.1)
data
EV=rep(NA,11)
for (i in 1:11){
value=assign(paste0('EV',i),data[,'EV']*(1+q[i]))
EV=cbind(EV,value)
}
EV=data.frame(EV[,2:12])
names(EV)<-paste0('EV',1:11)
EV
data.frame(data,EV)