2014-04-02 39 views
2

我想对所有变量执行逻辑回归,但在大数据框中执行两次逻辑回归。如何在不创建的情况下请求r引用除这两个变量之外的所有变量一个新的数据框。 例如:如何在对所有变量进行逻辑回归时删除特定列

dat <- read.table(text = " female apcalc admit  num 
    0  0  0   7 
    0  0  1   1 
    0  1  0   3 
    0  1  1   7 
    1  0  0   5 
    1  0  1   1 
    1  1  0   0 
    1  1  1   6", header = TRUE) 

我有这行代码:

Model1 <- glm(admit ~.,data=dat,family = 'binomial') 

,我要拿出 “女性” 和 “apcalc”。我可以在这一行代码中做到吗?

回答

4

你可以修改模型语句只包含变量你要。我认为下面的所有三行返回相同的估计值:

# remove the variable(s) you do not want 

summary(glm(admit ~ . - female - apcalc, data=dat, family = 'binomial')) 

# specify the variable(s) you do want 

summary(glm(admit ~ num, data=dat, family = 'binomial')) 

# remove the variable(s) you do not want 

summary(glm(admit ~ I(0 * female) + I(0 * apcalc) + num, data=dat, family = 'binomial')) 
+0

感谢马克的完整答案。 – mql4beginner

5

编辑

如果你想删除这些列进行分析,然后要么在运行模型前子集数据,或glm调用中。请记住,后者将减缓对更大数据集的调用gml

> dat2 <- dat[!names(dat) %in% c("female", "apcalc")] 
    admit num 
1  0 7 
2  1 1 
3  0 3 
4  1 7 
5  0 5 
6  1 1 
7  0 0 
8  1 6 

> glm(admit ~., data = dat2, family = 'binomial') 

原来的答案

如果你想只提取系数femaleapcalc,然后

> glm(admit ~.,data=dat,family = 'binomial')$coef[c("female", "apcalc")]