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

如何用R语言icd包为含重复ICD10码的大数据集添加诊断说明

解决ICD10诊断说明匹配问题

错误原因

icd::explain_code()默认会自动对输入的重复ICD码去重,仅返回唯一码的诊断说明,导致返回的向量长度与原数据集行数不匹配,触发description must be size 4 or 1, not 3这类长度错误。

解决方案

方法1:逐行处理ICD码

用purrr::map_chr()遍历每个ICD码,确保每个记录都生成对应的诊断说明,即使ICD码重复也能返回与原数据行数一致的结果:

library(icd)
library(tidyverse)

mydata <- tribble(
  ~ID, ~ICD10,
  1, "J12.81",
  2, "J44.9",
  3, "J12.81",
  4, "E84.0"
)

desired_output <- mydata %>%
  mutate(Description = map_chr(ICD10, ~icd::explain_code(.x)))

方法2:生成对照表后关联

针对存在大量重复ICD码的数据集(如4000条记录),先提取唯一ICD码生成诊断说明对照表,再通过left_join关联回原数据,能减少重复调用explain_code的次数,提升效率:

# 生成ICD码-诊断说明对照表
icd_lookup <- mydata %>%
  distinct(ICD10) %>%
  mutate(Description = icd::explain_code(ICD10))

# 关联原数据得到结果
desired_output <- mydata %>%
  left_join(icd_lookup, by = "ICD10")

验证结果

两种方法最终生成的desired_output均与预期一致,每条记录都会匹配对应的ICD10诊断说明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:47:35