使用dplyr
基于一行中的值删除多行我们假设我有这样的数据集
Pet Day Bite
Cow Monday No
Cow Tuesday No
Cow Wednesday No
Dog Monday No
Dog Tuesday No
Dog Wednesday No
Tiger Monday No
Tiger Tuesday Yes
Tiger Wednesday No
我想创建一个新的数据集,它可以消除所有咬伤的宠物。我的数据集应该是
Pet Day Bite
Cow Monday No
Cow Tuesday No
Cow Wednesday No
Dog Monday No
Dog Tuesday No
Dog Wednesday No
如何使用dplyr执行此操作?
答案 0 :(得分:0)
查看filter
链接here
只能使用filter
和any
执行此操作。您group_by
宠物,如果它们中的任何一个被咬了,它将过滤掉整个宠物类别。
library(dplyr)
df %>% group_by(Pet) %>% filter(!any(Bite == "Yes"))
# A tibble: 6 x 3
# Groups: Pet [2]
# Pet Day Bite
# <fct> <fct> <fct>
#1 Cow Monday No
#2 Cow Tuesday No
#3 Cow Wednesday No
#4 Dog Monday No
#5 Dog Tuesday No
#6 Dog Wednesday No