當使用兩個data.frames
的rbind
和NA
值時,我強制使用可變類型R的方式有問題。我說明的例子:爲什麼R在將NA值預先賦予具有因子的數據幀時更改變量類型?
x<-factor(sample(1:3,10,T))
y<-rnorm(10)
dat<-data.frame(x,y)
NAs<-data.frame(matrix(NA,ncol=ncol(dat),nrow=nrow(dat)))
colnames(NAs)<-colnames(dat)
現在的目標是追加dat
和NAs
,同時保持變量類型factor
和x
和y
numeric
。當我給:
dat_forward<-rbind(dat,NAs)
is.factor(dat_forward$x)
這工作正常。然而,使用rbind
向後方向失敗:
dat_backward<-rbind(NAs,dat)
is.factor(dat_backward$x)
is.character(dat_backward$x)
現在x
被強制轉換爲字符的水平。我很困惑 - 即使我使用其他綁定順序,它也不能保持因子類型嗎?爲了實現我的目標,我的代碼會發生什麼直接變化?
從'rbind.data.frame':「那麼它需要的列的類都是從第一個數據幀。 ..「。這就是爲什麼你在調用'rbind'時看到訂單問題。 – josliber
@josilber謝謝,有沒有一個簡單的解決我的問題? – tomka
將「NAs」的第一列轉換爲因子? –