基于每組行數的子集數據幀我有這樣的數據,其中一些“名字”出現超過3次:df <- data.frame(name = c("a", "a", "a", "b", "b", "c", "c", "c", "c"), x = 1:9)
name x1 a 12 a 23 a 34 b 45 b 56 c 67 c 78 c 89 c 9我希望根據每個級別中的行數(觀察)對數據進行子集(篩選)。name變量。如果某一水平name發生3次以上,我要刪除屬于該級別的所有行。所以在這個例子中,我們會刪除觀察name == c,因為有> 3該組中的行: name x1 a 12 a 23 a 34 b 45 b 5我寫了這段代碼,但沒能讓它起作用。as.data.frame(table(unique(df)$name))subset(df, name > 3)
2 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
dplyr
df %>% group_by(name) %>% filter(n() < 4)# A tibble: 5 x 2# Groups: name [2] name x <fct> <int>1 a 12 a 23 a 34 b 45 b 5
n()
group_by
- 2 回答
- 0 關注
- 585 瀏覽
添加回答
舉報
0/150
提交
取消