for()循环序列无效

for()循环序列无效,r,R,我试图使用as.name(x)来引用要输入到函数中的列表。下面是一个简化版的stats函数的示例,后面是for循环,我使用它一次输出所有数据 get<-function(data,x) { for (i in x) { lm(as.formula(paste(i,'~',variable)),data) } } lists<-c("a","b","c") # where each of a, b, and c are lists that refer to colu

我试图使用as.name(x)来引用要输入到函数中的列表。下面是一个简化版的stats函数的示例,后面是for循环,我使用它一次输出所有数据

get<-function(data,x) {
  for (i in x) {
    lm(as.formula(paste(i,'~',variable)),data)
  }
}
lists<-c("a","b","c") 
# where each of a, b, and c are lists that refer to column names of my data
for (j in lists) {
  get(data,as.name(j))
  }

如果我每次都能得到(数据,a),但当我试着做一个循环时就不行了。
a
b
c
中的每一个都是只包含一个值的列表吗?我这样问是因为你的
lm()
公式在左边有
I
,只能是一个向量


如果是这样的话,那么用
j
替换
as.name(j)
应该可以让你的代码正常工作。

我猜如果你在做
paste(i,~',variable)
那么你就不需要
as.name(j)
。只需执行
get(data,j)
。顺便说一句,
get
对于一个函数来说是一个非常糟糕的名字,它已经是
base R
中的一个了。
data
也是如此。您能提供示例数据来重新解决问题吗?它们是包含多个列名的列表,这些列名引用了我的数据。没有意识到粘贴使as.name变得无用。这成功了!
Error in for (i in x) { : invalid for() loop sequence