[英]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))
作為替代方案,您可以使用dplyr
的anti_join
。 anti_join
從df
返回所有行,而在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.