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