0
有人可以解释如何访问在eval
语句中创建的变量吗?我知道还有很多其他的解决方案可以解决这个问题,但我想了解为什么我遇到范围问题。在eval中初始化访问变量
错误
Error in paste0("fit<-summary(lm(NPISplit~", x, ",data=df));rs<-round(fit$r.squared,3);pv<-round(fit$coefficients[,4],3);if(pv<0.05){paste(", :
object 'rs' not found
代码
df<-data.frame(NPISplit=c(0,0,0,1,1,1),Happiness=c(2,5,6,8,7,4))
moods<-c('Happiness')
lapply(moods,function(x){
eval(parse(text=paste0(
"fit<-summary(lm(NPISplit~",x,",data=df));rs<-round(fit$r.squared,3);pv<-round(fit$coefficients[,4],3);if(pv<0.05){paste(",x,"=",rs,"&",pv,")}")))
})
看起来没有理解R编程。我建议你提供缺少的信息以允许代码实际运行,除非当然你不能立即看到'rs',更不用提'x','fit','pv')无处可见。尝试'fortunes :: fortune(“parse”)' –
函数从里到外评估。在这里,'paste0',然后是'parse',然后是'eval'。你正试图'paste0'' rs',但它不会被定义为另外两个步骤。你可以将你的'eval(parse(...))'分成两部分,但是有更好的方法。 – alistaire