我尝试使用as.name(x)来引用要输入到函数中的列表。这是我的统计函数简化版本的一个示例,后面是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))
}
我一直收到以下错误:
Error in for (i in x) { : invalid for() loop sequence
如果我每次都可以获取(数据,a),而不是在我尝试循环时获取。
答案 0 :(得分:1)
每个a
,b
和c
列表中是否只包含一个值?我问,因为您的lm()
公式在左侧有i
,并且只能是一个向量。
如果是这种情况,那么将as.name(j)
替换为j
会使您的代码生效。