簡體   English   中英

根據dplyr groupby輸出刪除/過濾行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM