如何在dplyr中使用not in语法直接排除指定行名的行?
使用dplyr的filter直接排除指定行名的行
当然可以,你不需要罗列所有要保留的行名,只需要用!对%in%的判断结果取反,就能实现类似“not in”的效果,直接指定要排除的行名。
针对你的需求,修改后的代码如下:
set.seed(100) df <- data.frame(x = sample.int(100,10, replace = F), y = sample.int(100,10, replace = F)) %>% `rownames<-`(LETTERS[1:10]) # 直接排除行名为F和J的行 df %>% filter(!row.names(.) %in% c("F", "J"))
语法说明
row.names(.)获取当前数据框的行名%in% c("F", "J")判断行名是否属于要排除的集合- 前面的
!表示取反,也就是保留不在这个集合里的行
内容的提问来源于stack exchange,提问作者Abbas
相关产品推荐
相关产品推荐

