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

如何在R语言中搜索数据列多字符串并生成分类列

在R语言中根据药物列表匹配生成分类列

我有一个抗真菌药物的字符列表,想要在数据框的药物名称列中匹配这些字符串,为匹配到的行生成对应的分类标签,未匹配的留空。

示例药物列表

antifungals <- c("caspofungin", "fluconazole")

原始数据框

patientdrug name
1caspofungin
2fluconazole
2fluconazole
3amoxicillin

期望得到的数据框

patientdrug namecategory
1caspofunginantifungal
2fluconazoleantifungal
2fluconazoleantifungal
3amoxicillin

实现方案

方案1:Base R 原生实现

直接用ifelse结合%in%判断匹配情况,快速添加分类列:

# 先构造原始数据框
df <- data.frame(
  patient = c(1, 2, 2, 3),
  drug_name = c("caspofungin", "fluconazole", "fluconazole", "amoxicillin")
)

# 生成分类列
df$category <- ifelse(df$drug_name %in% antifungals, "antifungal", "")

方案2:dplyr 包实现(tidyverse风格)

如果日常使用tidyverse工具链,用mutate+case_when的写法更灵活,方便后续扩展多分类规则:

library(dplyr)

df <- df %>%
  mutate(category = case_when(
    drug_name %in% antifungals ~ "antifungal",
    TRUE ~ ""  # 未匹配的情况留空
  ))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:32:43