mylist <- list(demographic_vars, usage_engagement_vars, billing_contracttype_vars, contract_type_vars)
mylist中的每个变量都是一个数据帧。
我正在编写一个传递给lapply()的函数。我想循环遍历mylist并将变量命名为:
varData <- function(x) {
paste('cv_prediction',x,sep='') <- data.frame()
}
上述目标是这样的: (例如,第一次迭代)
cv_predictiondemographic_vars <- data.frame()
我的功能出错,我怀疑与上述有关。
粘贴错误(“cv_prediction”,x,sep =“”)&lt; - data.frame():
赋值目标扩展为非语言对象
如果我想在我的函数中创建变量,这些变量是循环中x的当前值与其他字符串的串联,我该怎么做?
答案 0 :(得分:1)
您可以考虑使用eval(请参阅doc)。
> varData <- function(x) {
+ eval(parse(text=paste('cv_prediction', x,' <<- data.frame()',sep='')))
+ }
> varData(3)
> ls()
[1] "cv_prediction3" "varData"
> class(cv_prediction3)
[1] "data.frame"
请注意,您可以直接找到您希望创建新对象的环境,而不是使用<<-
运算符:
eval(parse(text=paste('cv_prediction', x,' <- data.frame()',sep='')),env=.GlobalEnv)