名義變量我有類似這樣的一個數據集:子集R中
x <- sample(c("A", "B", "C", "D"), 1000, replace=TRUE, prob=c(0.1, 0.2, 0.65, 0.05))
y <- sample(1:40, 1000, replace=TRUE)
d <- data.frame(x,y)
str(d)
'data.frame': 1000 obs. of 2 variables:
$ x: Factor w/4 levels "A","B","C","D": 1 3 3 2 3 3 3 3 4 3 ...
$ y: int 28 35 14 4 34 36 30 35 26 9 ...
table(d$x)
A B C D
115 204 637 44
所以在我的真實數據集,我有數千個這些類別(A,B,C,d)。
我的真實數據集的str()
str(realdata)
data.frame': 346340 obs. of 91 variables:
$ author : Factor w/ 42590 levels "-jon-","--LZR--",..: 1962 3434 1241 7666 6235 2391 1196 2779 1881 339 ...
$ created_utc : Factor w/ 343708 levels "2015-05-01 02:00:41",..: 14815 23163 2281 3569 5922 7211 15783 5512 13485 8591 ...
$ group : Factor w/ 5 levels "xyz","abc","bnm",..: 2 2 2 2 2 2 2 2 2 2 ...
....
現在我想子集數據,所以我只有那些$作家(在d
數據幀或$x
)在我的新數據框中有更多的行總共超過100個條目。
我試過如下:
dnew <- subset(realdata, table(realdata$author) > 100)
它給了我一個結果,但它似乎被納入作者的不是所有的條目。雖然它應該是更多,我只得到完整數據集的行的1.3%。我手工檢查(用Excel),它應該比這更多(約30%)。手動分析顯示,1.2%的$作者佔30%的參賽作品。所以看起來他只給了我一行有超過100個條目的$作者,但不是他所有的條目。
你知道一個方法來解決這個問題嗎?
謝謝,這工作! –
@akrun我不知道你已經添加了,對於我的答案,我使用了兩個鏈接的組合,我試了一下,然後發佈,這裏是http://stackoverflow.com/questions/24835233/subset-based-on-頻率級 http://stackoverflow.com/questions/1195826/drop-factor-levels-in-a-subsetted-data-frame 你的答案爲基地R也奏效我也檢查過,水平仍然堅持數據,所以我在第二個鏈接之後放棄了它們。 謝謝。 –