有人可以解释如何访问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,")}")))
})
答案 0 :(得分:1)
你只需要在引号内转义引号。
x <- 1
lapply(1:2, function(.) eval(parse(text="y<-x+1;paste(\"y=\", y)")))