我有以下数据
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 )
我怎样才能让它发挥作用?
答案 0 :(得分: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的上下文中,它表示“以前的内容” 在公式的这一部分'。