如何在R数据框中判定指定类别是否关联Coffee Shop与Restaurant
R数据框类别与特定场所关联判断方案
需求目标
针对向量 x <- c("Jay Ambiga","Ameen Agent") 中的每个类别,检查其在Description字段中是否关联Coffee Shop或Restaurant。
实现代码
使用dplyr包结合grepl关键词匹配,可高效生成目标结果:
1. 加载依赖包
library(dplyr)
2. 核心处理代码
# 定义待检查的场所关键词 target_places <- c("Coffee Shop", "Restaurant") # 按类别分组,判断是否关联对应场所 check_result <- df %>% # 仅筛选目标类别数据 filter(Category %in% x) %>% group_by(Category) %>% summarise( # 检查是否存在Coffee Shop关联记录 关联Coffee Shop = any(grepl("Coffee Shop", Description, ignore.case = TRUE)), # 检查是否存在Restaurant关联记录 关联Restaurant = any(grepl("Restaurant", Description, ignore.case = TRUE)) ) # 输出结果 print(check_result)
3. 结果示例
基于你提供的df数据,运行后会得到如下结果:
# A tibble: 2 × 3 Category 关联Coffee Shop 关联Restaurant <chr> <lgl> <lgl> 1 Ameen Agent FALSE TRUE 2 Jay Ambiga TRUE TRUE
细节说明
ignore.case = TRUE:忽略大小写匹配,避免因描述中关键词大小写不一致导致漏判;any():判断分组内是否至少有一条记录匹配关键词,只要存在匹配就返回TRUE;- 若需要精确匹配(仅匹配完整关键词,而非包含关键词的字符串),可将
grepl参数调整为grepl("\\bCoffee Shop\\b", Description),其中\\b表示单词边界。
内容的提问来源于stack exchange,提问作者Din
相关产品推荐
相关产品推荐

