我必須缺少一些非常基本的東西。希望有人能指出。我試圖子集基於特定年份和性別以下數據幀...由於無法解釋的原因,R子集函數返回零記錄
str(Bnames)
'data.frame': 258000 obs. of 4 variables:
$ X.year. : int 1880 1880 1880 1880 1880 1880 1880 1880 1880 1880 ...
$ X.name. : Factor w/ 6782 levels "\"Aaden\"","\"Aaliyah\"",..: 3380 6632 3125 1174 2554 2449 3428 6232 2834 5517 ...
$ X.percent.: num 0.0815 0.0805 0.0501 0.0452 0.0433 ...
$ X.sex. : Factor w/ 2 levels "\"boy\"","\"girl\"": 1 1 1 1 1 1 1 1 1 1 ...
我輸入的代碼是
one <- subset(Bnames, X.year.==2008 & X.sex.=="boy") # I get zero rows returned
two<- subset(Bnames, X.year.==2008) # I get 2000 rows returned, which is correct
three <- subset(Bnames, X.sex.=="boy") # I get 0 rows returned
four <- subset(Bnames, X.name.=="John") # I get 0 rows returned
我不明白。我正在使用一個可免費使用的數據集http://plyr.had.co.nz/09-user/
如果我通過重複採樣c("boy","girl")
來製作自己的數據幀,則該子集可以正常工作。爲什麼代碼與我開始使用的數據失敗?
看來你的因子列的級別被引用了:例如'X.sex.'列沒有'boy'或'girl'級別,而是''boy''和''girl'' 。試試:'一個< - 子集(Bnames,X.year。== 2008&X.sex。==「\」boy \「」)' – nicola 2014-11-20 21:04:10
@nicola:您應該將其作爲答案發布。 – 2014-11-21 02:08:27
@BondedDust發表回覆。謝謝。 – nicola 2014-11-21 06:23:58