You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中按规则将dataframe数据分类存入命名列表的问题

修正后的R代码及问题说明

原代码存在的问题

  1. 拼写错误:循环末尾append的变量写成了or,实际应该是org
  2. 未给列表元素命名,导致输出没有按要求的分组名称区分
  3. 多关键词匹配逻辑错误:当关键词是向量(比如"EMERITUS"和"BROOKDALE"),str_detect无法直接识别向量格式的匹配条件,需要转为正则表达式的"或"模式

修正后的代码

# 定义分组名称与对应关键词的映射(用命名列表直接绑定,避免序号对应出错)
group_defs <- list(
  "BAYSHIRE" = "BAYSHIRE",
  "EMERITUS, BROOKDALE" = c("EMERITUS", "BROOKDALE"),
  "AGEMARK" = "AGEMARK"
)

big_organization <- list()

# 遍历每个分组定义
for (group_name in names(group_defs)) {
  keywords <- group_defs[[group_name]]
  # 将多关键词转为正则"或"模式,适配str_detect的匹配规则
  pattern <- paste(keywords, collapse = "|")
  
  org <- tidy2 %>%
    filter(str_detect(Licensee, pattern) | str_detect(Facility_name, pattern)) %>%
    select(Facility_number, Facility_name, Licensee)
  
  # 直接给列表的命名元素赋值,避免append拆分数据框的问题
  big_organization[[group_name]] <- org
}

big_organization

代码说明

  • 用**命名列表group_defs**直接绑定分组名称和对应关键词,不用再手动对应序号,逻辑更清晰
  • 把多关键词拼接成"EMERITUS|BROOKDALE"的正则格式,让str_detect能同时匹配多个关键词
  • 通过big_organization[[group_name]] <- org直接给列表元素命名,保证输出是按要求分组的命名列表
  • 修正了拼写错误,同时避免append可能导致的数据框拆分行的问题

内容的提问来源于stack exchange,提问作者Phyllis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 07:36:20