0

我有以下数据

data.set <- data.frame("varA"=rnorm(50),"varB"=rnorm(50),
                       "varC"=rnorm(50), binary.outcome=sample(c(0,1),50,replace=T) )

exp.vars <- c("varA","varB","varC")

然后,我希望使用所有exp.vars作为因变量的逻辑模型而不对其进行硬编码(我想将其放入一个函数中,以便可以尝试 exp.vars 的不同组合。我的尝试:

results <- glm( binary.outcome ~ get(paste(exp.vars, collapse="+")), family=binomial, 
                        data=data.set )

我怎样才能让它工作?

4

1 回答 1

2

_ 在公式中告诉 R 使用 data.frame data.set 中的所有变量(y除外)作为预测变量。这应该这样做:

glm( binary.outcome ~ ., family=binomial, 
                data=data.set )

Call:  glm(formula = binary.outcome ~ ., family = binomial, data = data.set)

Coefficients:
(Intercept)         varA         varB         varC  
    -0.4820       0.1878      -0.3974      -0.4566  

Degrees of Freedom: 49 Total (i.e. Null);  46 Residual
Null Deviance:      66.41 
Residual Deviance: 62.06    AIC: 70.06

并从?formula

有两种特殊的解释。在一个公式中。通常的一个是在模型拟合函数的数据参数的上下文中,意思是“公式中没有的所有列”:参见 terms.formula。仅在 update.formula 的上下文中,它表示“以前在这部分公式中的内容”。

于 2013-08-04T12:28:20.473 回答