R语言从文件名提取区域码并关联区域数据框的实现方法
R实现代码
首先加载所需依赖包:
library(dplyr) library(stringr)
执行匹配关联逻辑:
# 构造区域码正则匹配模式,\b为单词边界符,避免误匹配文件名中其他位置的连续大写字母 region_pattern <- paste0("\\b(", paste(regions$region_codes, collapse = "|"), ")\\b") result <- files %>% # 提取文件名中第一个匹配的区域码,无匹配则返回NA mutate(region_codes = str_extract(filenames, region_pattern)) %>% # 关联区域表获取对应区域名称 left_join(regions, by = "region_codes") %>% # 将空值统一替换为"N/A",符合输出要求 mutate(across(c(region_codes, region_names), ~replace_na(as.character(.), "N/A")))
运行print(result)即可得到你需要的预期结果。
核心逻辑说明
- 正则模式仅匹配独立出现的目标区域码,避免误判
str_extract默认返回第一个匹配结果,刚好适配「每个文件名最多1个有效区域码」的规则- 左连接后统一处理空值,输出格式符合要求
内容的提问来源于stack exchange,提问作者versb
相关产品推荐
相关产品推荐

