2014-04-02 77 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")]