【发布时间】:2020-12-09 11:49:58
【问题描述】:
我试图在另一列中找到具有某些或所有可能值的列中的观察值。在这个小标题里
parties <- tibble(class = c("R","R","R","R","R","K","K","K","K","K","K",
"L","L","L","L"),
name = c("Party1", "Party2","Party3","Party4","Party5",
"Party2", "Party4", "Party6","Party7","Party8","Party9",
"Party2","Party3","Party4","Party10"))
我想找到属于“R”、“K”和“L”三个类别的所有“派对”。或者通常属于“X”或“Y”类的各方。我设法找到了一个解决方案,使用group_split(class),然后从列表中提取每个表,最后执行两个半连接。这适用于我想要所有三个classes 的聚会的情况:
parties_split <- parties %>%
group_split(class)
parties_K <- parties_split[[1]]
parties_L <- parties_split[[2]]
parties_R <- parties_split[[3]]
semi_join(parties_K,parties_L, by = "name") %>%
semi_join(parties_R, by = "name") %>%
select(-class)
name
<chr>
Party2
Party4
这在这种情况下可行,但效率不高,尤其是当需要匹配的类(或观察)的数量远大于三个时。我特别在 tidyverse 中寻找解决方案。有任何想法吗?谢谢
【问题讨论】: