我在R中運行GLM,但需要嘗試一些沒有因子Year一級的模型。如何子集()與因素?
這就像:
Year<-as.factor(c(1996,1997,1998,1999,2000))
Shr<-as.numeric(c(1,32,1,50,42))
#... and other variables.
如何 '排除',只有1998年從我的模型? 我需要從所有其他變量中取得整行,否則GLM由於行數的差異而不能運行。
我在R中運行GLM,但需要嘗試一些沒有因子Year一級的模型。如何子集()與因素?
這就像:
Year<-as.factor(c(1996,1997,1998,1999,2000))
Shr<-as.numeric(c(1,32,1,50,42))
#... and other variables.
如何 '排除',只有1998年從我的模型? 我需要從所有其他變量中取得整行,否則GLM由於行數的差異而不能運行。
假設你有一個名爲 data.frame你的數據,你可以使用
da.fr2<-da.fr[da.fr$Year!=1998,]
da.fr2$Year<-droplevels(da.fr2$Year)
第一線,使新data.frame沒有任何的1998年的數據。第二行將刪除1998年作爲年的一個因素,因爲它不再在數據集中。
+1對於'droplevels()' –
謝謝你的幫助!這種方式也起作用。 – user2945823
沒問題 - 如果您使用沒有簡單子集選項的函數進行分析 - 這是一個好方法。 –
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"
謝謝!我會牢記其他分析。真的很有幫助。 – user2945823
你的變量是否在data.frame中(正如他們應該那樣)? – Roland
是的。插入所有變量後,我把它們放在所有
user2945823