我有一個包含超過 400,000 頭奶牛的資料集。這些奶牛(不均勻地)分布在 2355 頭牛群中。有些牛群在資料中只出現一次,而一個牛群在資料中甚至出現了 2033 次,這意味著 2033 頭奶牛屬于這個牛群。我想從我的資料中洗掉出現次數少于 200 次的牛群。使用plyrand subset,我可以獲得一個串列,其中列出了出現少于 200 次的牛群,但是我不知道如何將此選擇應用于整個資料集。
例如,我當前的資料看起來有點像:
cow herd
1 1
2 1
3 1
4 2
5 3
6 4
7 4
8 4
使用功能count(),我可以獲得以下內容:
x freq
1 3
2 1
3 1
4 3
假設我想洗掉出現次數少于 3 次的屬于 herds 的資料,我希望我的資料最終看起來像這樣:
cow herd
1 1
2 1
3 1
6 4
7 4
8 4
我確實知道如何告訴 R 逐個洗掉資料,但是因為在我的真實資料集中,超過 1000 個畜群發生的次數少于 200 次,這意味著我必須在腳本中一個一個地輸入每個畜群的數量。我確信有一種更簡單快捷的方法可以讓 R 洗掉高于或低于某個事件的資料。
我希望我的解釋很清楚,有人可以幫助我,在此先感謝!
uj5u.com熱心網友回復:
使用n group_by:
library(dplyr)
your_data %>%
group_by(herd) %>%
filter(n() >= 3)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529921.html
標籤:r数数选择删除行
上一篇:嘗試使用內部函式時出錯
下一篇:C編程int驗證
