R 如何使用因子对()进行子集?

R 如何使用因子对()进行子集?,r,subset,glm,R,Subset,Glm,我在R中运行GLMs,但需要尝试一些没有因子年级别的模型 就像: Year<-as.factor(c(1996,1997,1998,1999,2000)) Shr<-as.numeric(c(1,32,1,50,42)) #... and other variables. Year假设您的数据位于名为da.fr的data.frame中,您可以使用 da.fr2<-da.fr[da.fr$Year!=1998,] da.fr2$Year<-droplevels(da.f

我在R中运行GLMs,但需要尝试一些没有因子年级别的模型

就像:

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

Year假设您的数据位于名为
da.fr的data.frame中,您可以使用

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

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

da.fr2
Year更简单的是,您可以使用
glm()的
subset
参数:


您的变量是否在data.frame中(应该是这样)?是。插入所有变量后,我将它们放入AllThank!在其他分析中,我会记住这一点。真的很有帮助。没问题-如果您使用没有简单子集选项的函数进行分析-这是一个很好的方法。
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"
glm(...,data=all,subset=(Year != 1998))