R语言筛选指定动物数据后如何匹配位置列提取符合条件的记录
你可以通过分组过滤实现需求,无需手动添加地点匹配条件,参考代码如下:
library(dplyr) # 基于你已筛选得到的zoo_animals继续处理 result <- zoo_animals %>% group_by(drop) %>% # 按地点列分组(实际场景替换为对应的地点字段名即可) filter(all(c("Elephant", "Giraffe") %in% animal)) %>% # 目标值替换为你要匹配的图书编码 ungroup()
如果想从原始数据集一步完成筛选,也可以直接写为:
result <- df %>% filter(grepl("Gir|Ele", animal)) %>% # 匹配规则替换为你的图书名称编码筛选规则 group_by(drop) %>% filter(all(c("Elephant", "Giraffe") %in% animal)) %>% ungroup()
逻辑说明
- 先筛选出字段值符合规则的记录
- 按地点列分组,将同一地点的所有记录归为同一组
- 判断每组内是否同时存在你指定的多个目标值,仅保留同时满足条件的分组下的全部记录
- 可选执行
ungroup()去掉分组状态,方便后续对结果做其他处理
运行上述代码在你的样例数据集上得到的结果和你给出的预期输出完全一致。
内容的提问来源于stack exchange,提问作者trog12
相关产品推荐
相关产品推荐

