2017-05-22 12 views
1

我分層我data.frame(具有80列和10.000行)由係數可變school使用下列命令兩級(0: high, 1:low):甲分層data.frame導致零行/觀測中的R

high.school=data.frame[which(data.frame$school==0) , ] 
low.school=data.frame[which(data.frame$school==1) , ] 

但是它產生了兩個data.frames與所有80列,但與0 rows。爲什麼行不被考慮?

謝謝!

+0

檢查變量名字 - 'school'。你可能寫錯了。 – MysticRenge

+0

您的數據框的名稱是否爲'data.frame'?使用'data.frame'作爲對象名稱可能不是一個好主意。另外,您能否向我們展示應用於您的數據框的'str'的​​結果? – ikop

+0

它被寫入正確。這只是一個通用名稱,我的數據框不會調用data.frame。 – Naomi

回答

0

簡答 - 爲什麼使用哪個? 讓我們試試看。

> DF=NULL 
> DF$school=as.factor(sample(c(0,1),10000,T)) 
> DF=as.data.frame(DF) 
> head(DF) 
    school 
1  0 
2  0 
3  1 
4  1 
5  0 
6  1 
> str(DF) 
'data.frame': 10000 obs. of 1 variable: 
$ school: Factor w/ 2 levels "0","1": 1 1 2 2 1 2 1 2 2 2 ... 

所以你看學校的因子值是1,2,而因子水平是0.1 現在嘗試以下

> df2=DF[DF$school==1,] 
> df3=DF[DF$school==0,] 
> str(df2) 
Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 ... 
> str(df3) 
Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ... 

> head(df2) 
[1] 1 1 1 1 1 1 
Levels: 0 1 
> head(df3) 
[1] 0 0 0 0 0 0 
Levels: 0 1