使用dplyr的多条件筛选联接
我试图通过创建一个名为使用dplyr的多条件筛选联接,r,dplyr,dbplyr,R,Dplyr,Dbplyr,我试图通过创建一个名为event\u f的df来完成下面描述的操作 我想从细节df中,将类型id==6的所有事件id作为筛选标准,不包括组合为6和3或6和7的事件id 请注意,可以有其他组合,但它们都将包括在内 库(tidyverse) #>警告:程序包“tidyverse”是在R版本3.5.3下构建的 #>警告:包“purrr”是在R版本3.5.3下生成的 事件我想你需要 library(dplyr) event %>% semi_join(detail %>%
event\u f
的df
来完成下面描述的操作
我想从细节df
中,将类型id==6的所有事件id
作为筛选标准,不包括组合为6和3或6和7的事件id
请注意,可以有其他组合,但它们都将包括在内
库(tidyverse)
#>警告:程序包“tidyverse”是在R版本3.5.3下构建的
#>警告:包“purrr”是在R版本3.5.3下生成的
事件我想你需要
library(dplyr)
event %>%
semi_join(detail %>%
group_by(event_id) %>%
filter(any(type_id == 6) & all(!type_id %in% c(3, 7))),
by = c("id" = "event_id"))
# id type_id
# <chr> <chr>
#1 00_6 B
库(dplyr)
事件%>%
半无缝连接(详图%>%
分组依据(事件id)%>%
筛选器(任意(type_id==6)和所有(!type_id%in%c(3,7)),
by=c(“id”=“事件id”))
#id类型\u id
#
#100_6 B
当我们试图为那些满足标准的类型id
找出事件id
时,我们需要按事件id
分组。如果我们不按
分组,则过滤条件将应用于整个数据帧,因为数据帧中的值为3和7,因此将返回0行 我想你需要
library(dplyr)
event %>%
semi_join(detail %>%
group_by(event_id) %>%
filter(any(type_id == 6) & all(!type_id %in% c(3, 7))),
by = c("id" = "event_id"))
# id type_id
# <chr> <chr>
#1 00_6 B
库(dplyr)
事件%>%
半无缝连接(详图%>%
分组依据(事件id)%>%
筛选器(任意(type_id==6)和所有(!type_id%in%c(3,7)),
by=c(“id”=“事件id”))
#id类型\u id
#
#100_6 B
当我们试图为那些满足标准的类型id
找出事件id
时,我们需要按事件id
分组。如果我们不按
分组,则过滤条件将应用于整个数据帧,因为数据帧中的值为3和7,因此将返回0行 太好了,谢谢。你能解释一下为什么你需要这里的群组吗?@MattnDo用一些解释更新了答案。太好了,谢谢。你介意解释一下为什么你需要这里的分组吗?@MattnDo用一些解释更新了答案。