簡體   English   中英

如何使用子集從數據框中刪除行?

[英]How to remove rows from a data frame using a subset?

我在名為 Retest_data 的數據框中有一列,如下所示:

SFC
YU006UGD31092
YU006UGD31071
YU006UGD30152
YU006UGD25831
YU006UGD25831
YU006UGD25332
YU006UG922912
YU006UG922912

我想要的是刪除出現不止一次的所有值實例。 所以像 unique 和 distinct 這樣的 dplyr 函數對我不起作用。

我還有一個名為 Remove_SFC 的列表,其中包含多次出現的所有 SFC 值。 如何使用此列表從我的數據中刪除所有重復值? 謝謝。

數據:

df <- data.frame(SFC = c("YU006UGD31092","YU006UGD31071",
                         "YU006UGD30152",
                         "YU006UGD25831",
                         "YU006UGD25831",
                         "YU006UGD25332" ,
                         "YU006UG922912",
                         "YU006UG922912"))

代碼:

df %>% 
  group_by(SFC) %>% 
  filter(n() == 1)

輸出:

  SFC          
  <chr>        
1 YU006UGD31092
2 YU006UGD31071
3 YU006UGD30152
4 YU006UGD25332

編輯:

如果您有列表,您還可以執行以下操作:

df %>% 
  filter(!(SFC %in% Remove_SFC))

作為替代方案,您可以使用dplyranti_join anti_joindf返回所有行,而在Remove_SFC沒有匹配Remove_SFC

library(dplyr)

df %>% 
  anti_join(data.frame(SFC=Remove_SFC))

返回

Joining, by = "SFC"
            SFC
1 YU006UGD31092
2 YU006UGD31071
3 YU006UGD30152
4 YU006UGD25332

數據

Remove_SFC <- c("YU006UG922912", "YU006UGD25831")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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