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

在R中解析含多诊断的Excel单元格,统计出院诊断频率

在R中拆分Excel出院诊断并统计各诊断出现频率

嘿,这个需求在临床数据分析里太常见了!我给你一套清晰的R实现步骤,保证能轻松搞定多诊断的拆分和频率统计:

第一步:准备所需的R包

我们需要用到几个常用的数据处理包,先安装并加载它们(如果还没装的话):

install.packages(c("readxl", "tidyr", "dplyr", "stringr"))
library(readxl)
library(tidyr)
library(dplyr)
library(stringr)

第二步:读取你的Excel数据

把下面的文件路径替换成你实际的Excel文件路径:

# 读取患者信息表格
patient_data <- read_excel("你的患者信息文件.xlsx")

第三步:拆分多诊断单元格并清理格式

关键一步来了!我们要把用/分隔的多个诊断拆成单独的行,同时还要处理掉诊断文本前后可能存在的空格(比如" 肺炎 / 高血压 "这种情况):

# 拆分诊断列,处理分隔符前后的空格
clean_diagnoses <- patient_data %>%
  # 按"/"拆分Discharge diagnosis列,兼容分隔符前后的空格
  separate_rows(`Discharge diagnosis`, sep = "\\s*/\\s*") %>%
  # 去掉每个诊断文本前后的空格
  mutate(`Discharge diagnosis` = str_trim(`Discharge diagnosis`))

这里用\\s*/\\s*作为分隔符,是为了兼容各种带空格的分隔情况,比如"/"前后有一个或多个空格都能正确拆分

第四步:统计诊断出现频率

现在可以轻松统计所有诊断的出现次数,还能按频次排序:

# 统计每个诊断的出现频次,并按频次从高到低排序
diagnosis_frequency <- clean_diagnoses %>%
  count(`Discharge diagnosis`, name = "出现频次") %>%
  arrange(desc(`出现频次`))

# 查看统计结果
print(diagnosis_frequency)

快速查询特定诊断的频次

如果你想单独查某一个诊断(比如"2型糖尿病")的出现次数,可以用这段代码:

# 替换成你要查询的诊断名称
target_diagnosis <- "2型糖尿病"

# 获取目标诊断的频次,没有匹配项则返回0
target_freq <- diagnosis_frequency %>%
  filter(`Discharge diagnosis` == target_diagnosis) %>%
  pull(`出现频次`) %>%
  ifelse(length(.) == 0, 0, .)

cat(paste0(target_diagnosis, "的出现频次是:", target_freq))

额外提示

如果你的诊断文本还有其他格式问题(比如大小写不一致、缩写不同),可以用str_to_lower()统一转成小写,或者用str_replace()做文本替换,确保统计的准确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:22:42