[英]How to use get() to construct a complicated model of variables
我知道如何使用get()
从变量快速构建模型,例如:
dvar="myResponse"
ivar="someIndependentVariable"
family="binomial"
myGLM <- glm(data=ds, get(dvar) ~ get(ivar),family=myFamily)
当然,这对于循环遍历变量列表非常方便-您可以在for()
循环中向其提供一系列独立变量,并查看许多不同的模型。 我的问题是,我将如何使用get()
, eval()
或一些类似的命令来创建更复杂的调用? 例如,假设我在列表中有两个自变量:
dvar="myResponse"
ivar=c("independentVar1","independentVar2")
最后,我想要的是:
myGLM<-glm(data=ds, myResponse ~ independentVar1 + independentVar2)
我知道我可以使用三个get()
语句来做到这一点,因为我只有1个因变量和2个独立变量,但是对于n项独立变量列表,有没有一种通用的方法? 基本上,我要做的是逐步回归,但是我对caret
, MASS
等中的任何现有选项都不满意。
您要?reformulate
...
dvar="myResponse"
ivar <- c("independentVar1","independentVar2")
form <- reformulate(ivar, response=dvar)
glm(form, myFamily = family_string, data= ...)
作为基本规则,
reformulate()
或直接操纵公式的解决方案(使用quote()
substitute()
, as.symbol()
, as.symbol()
等)比...更惯用/更安全/更可靠。 deparse()
/ as.formula()
)比... [m]get()
, eval()
等的解决方案... (我实际上在这里在这个层次结构上作弊,因为reformulate()
实际上是基于字符串的,但是由于它是一个内置函数...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.