2013-11-21 4 views
2

Я запускаю GLM в R, но вам нужно попробовать некоторые модели без одного уровня фактора Year.Как подмножить() с факторами?

Это как:

Year<-as.factor(c(1996,1997,1998,1999,2000)) 
Shr<-as.numeric(c(1,32,1,50,42)) 
#... and other variables. 

Как я исключаю "только 1998 из моей модели? Мне нужно взять всю строку из всех остальных переменных, иначе GLM не будет работать из-за разницы в количестве строк.

+0

Являются ли ваши переменные в data.frame (как и должно быть)? – Roland

+0

есть. После вставки всех моих переменных я помещаю их во все user2945823

ответ

3

Еще более легко, вы можете просто использовать subset аргумент glm():

glm(...,data=all,subset=(Year != 1998)) 
+0

Спасибо! Этот способ работал красиво. – user2945823

3

Если у вас есть данные в data.frame называется , вы можете использовать

da.fr2<-da.fr[da.fr$Year!=1998,] 

da.fr2$Year<-droplevels(da.fr2$Year) 

Первая строка создает новый data.frame без какой-либо из данных 1998 года. Вторая строка удалит 1998 год как фактор года, поскольку она больше не находится в наборе данных.

+0

+1 для 'droplevels()' –

+0

Спасибо, что помогли! Этот способ тоже работал. – user2945823

+0

Нет проблем - если вы выполняете анализ с использованием функций без простой подмножества - это хороший способ. –

1
Year<-as.factor(c(1996,1997,1998,1999,2000)) 
Shr<-as.numeric(c(1,32,1,50,42)) 

dat <- data.frame(Year=Year, Shr = Shr) # your data 
#> dat 
# Year Shr 
#1 1996 1 
#2 1997 32 
#3 1998 1 
#4 1999 50 
#5 2000 42 

> levels(dat$Year) 
#[1] "1996" "1997" "1998" "1999" "2000" 

В зависимости от того, что вы хотите достичь, вы можете:

dat2 <- dat[!(dat$Year %in% "1998") , ] # remove rows with 1998 
#> dat2 
# Year Shr 
#1 1996 1 
#2 1997 32 
#4 1999 50 
#5 2000 42 

levels(dat2$Year) 
#[1] "1996" "1997" "1998" "1999" "2000" # the 1998 level remains 

, но вы также можете:

dat2$Year <- factor(dat2$Year) # also remove the level if you want 
levels(dat2$Year) 
#[1] "1996" "1997" "1999" "2000" 
+0

Спасибо! Я буду помнить об этом в другом анализе. Действительно полезно. – user2945823

 Смежные вопросы

  • Нет связанных вопросов^_^