【发布时间】:2015-10-05 19:27:07
【问题描述】:
我的目标是从 Python 获取变量(在这种情况下为列名),然后在 R 中处理它们。当我尝试执行线性回归时,例如:
cropeareatable<-matrix(c(111111,222222,333333,2222222),ncol=2,byrow=TRUE)
colnames(cropeareatable)<-c('Canola_RE','Canola_CI')
cropeareatable
x<-(colnames(cropeareatable))
re <-x[0]
ci<-x[1]
linreg<-lm(table$re~table$ci)
编辑:更改为可重现
收到错误:table$re 中的错误:“闭包”类型的对象不是子集
它不起作用。我已经研究过了,并尝试了许多不同的方法
调用
regress<-do.call(rlm,list(cropareatable[3],cropareatable[4]),quote=FALSE)
regress<-do.call(rlm,list(x[3],y[4]),quote=FALSE)
quote()+eval:
x<-(colnames(cropareatable))
re <-quote(x[3])
ci<-quote(x[4])
linreg<-lm(table$eval(re)~table$eval(ci))
我也尝试过公式构建、数据框构建、as.list,但我根本无法让回归工作。
【问题讨论】:
-
请尝试使其可重现。另外,您收到什么错误?特别是在您的第一个代码块中。
-
我已经简化了,无法重现。错误也显示出来了。
-
table$re : object of type 'closure' is not subsettable可能只是因为table是一个内置函数。考虑使用不同的变量名。 -
啊——我想我明白了;您想按名称指定列。
$运算符几乎仅用于交互使用。考虑使用cropeareatable[, ci]代替子集。 -
哇!非常感谢。我环顾四周,研究了许多复杂的事情,但结果发现最好的就是最简单的。
标签: r variables regression