R 如何使用因子对()进行子集?
我在R中运行GLMs,但需要尝试一些没有因子年级别的模型 就像: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
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.fr2Year更简单的是,您可以使用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))