评估字符串以进行回归
Evaluate strings for regression
来自这些字符串
data = "mtcars"
y = "mpg"
x = c("cyl","disp")
,我正在尝试执行线性模型。我试过
epp=function(x) eval(parse(text=paste0(x,collapse="+")))
lm(data=epp(data),epp(y)~epp(x))
# Error in eval(expr, envir, enclos) : object 'cyl' not found
最后一行的目的是等同于
lm(data=mtcars,mpg~cyl+disp)
这涉及两个操作,这两个操作都在多个 SO 条目中进行了描述,这些条目可能单独使用 get
或 as.formula
函数:
lm(data=get(data),
formula=as.formula( paste( y, "~", paste(x, collapse="+") ) )
)
在这两种情况下,您都使用 text/character 对象到 return 语言对象。在第一个参数中 get
return 是一个可以计算的 'symbol',在第二个实例中 as.formula
return 是一个 'formula' 对象。 @blmoore 在建议我们 lm
将接受字符对象时是正确的,因此此处不需要 as.formula 调用。
来自这些字符串
data = "mtcars"
y = "mpg"
x = c("cyl","disp")
,我正在尝试执行线性模型。我试过
epp=function(x) eval(parse(text=paste0(x,collapse="+")))
lm(data=epp(data),epp(y)~epp(x))
# Error in eval(expr, envir, enclos) : object 'cyl' not found
最后一行的目的是等同于
lm(data=mtcars,mpg~cyl+disp)
这涉及两个操作,这两个操作都在多个 SO 条目中进行了描述,这些条目可能单独使用 get
或 as.formula
函数:
lm(data=get(data),
formula=as.formula( paste( y, "~", paste(x, collapse="+") ) )
)
在这两种情况下,您都使用 text/character 对象到 return 语言对象。在第一个参数中 get
return 是一个可以计算的 'symbol',在第二个实例中 as.formula
return 是一个 'formula' 对象。 @blmoore 在建议我们 lm
将接受字符对象时是正确的,因此此处不需要 as.formula 调用。