[英]Delete/Filter rows based on the dplyr groupby output
假設我有一個如下數據框,
ID <- c("A","A","A","B","B","B","C","C")
Type <- c(45,46,47,45,46,47,45,46)
Point_A <- c(10,15,20,8,9,10,35,33)
df <- data.frame(ID,Type,Point_A)
我正在對此數據框使用dplyr groupby函數,
library(dplyr)
df %>% group_by(ID) %>% summarise(q=n())
以下是我得到的輸出,
ID q
(fctr) (int)
1 A 3
2 B 3
3 C 2
現在,我要過濾計數為2的行。理想情況下,代碼應刪除計數為2的行。代碼的輸出應為:
ID Type Point_A
1 A 45 10
2 A 46 15
3 A 47 20
4 B 45 8
5 B 46 9
6 B 47 10
因為計數為2的行已被刪除。
是否有可能做到這一點? 有人可以幫我嗎?
謝謝
您可以將n()
和filter()
一起使用,而無需summarize()
:
df %>%
group_by(ID) %>%
filter(n() != 2)
# Source: local data frame [6 x 3]
# Groups: ID [2]
#
# ID Type Point_A
# (fctr) (dbl) (dbl)
# 1 A 45 10
# 2 A 46 15
# 3 A 47 20
# 4 B 45 8
# 5 B 46 9
# 6 B 47 10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.