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

如何用R统计指定列词汇出现次数并生成表格,含多物质使用分析

R语言SUD诊断统计解决方案

前置依赖安装

如果尚未安装所需工具包,先运行以下代码安装:

install.packages(c("tidyverse", "openxlsx"))

问题1:同名诊断重复统计修复

出现同名诊断拆分统计的核心原因是原数据中逗号后带空格,拆分后部分诊断项带前导空格被识别为不同类别,修复代码如下:

# 加载工具包
library(tidyverse)
library(openxlsx)

# 读入数据:如果是xlsx格式,替换为 read_excel("你的文件路径.xlsx")
SUB_DATA <- read.csv("SUD_FILE.csv", stringsAsFactors = FALSE)

# 统计全人群各诊断总患病人数
diagnosis_total <- SUB_DATA %>%
  # 按逗号+任意数量空格拆分诊断项,自动去除前导空格
  mutate(diag_item = str_split(Dx.Axis.I, ",\\s*")) %>%
  unnest(diag_item) %>%
  # 按诊断分组计数
  count(diag_item, name = "总患病人数") %>%
  rename(诊断名称 = diag_item)

问题2:多诊断人群诊断统计

先筛选出诊断数量大于1的样本,再统计各诊断的患病人数:

diagnosis_multi <- SUB_DATA %>%
  mutate(diag_list = str_split(Dx.Axis.I, ",\\s*"),
         # 计算每行的诊断数量
         diag_count = lengths(diag_list)) %>%
  # 筛选同时患有1种以上诊断的人群
  filter(diag_count > 1) %>%
  unnest(diag_list) %>%
  count(diag_list, name = "多诊断人群患病人数") %>%
  rename(诊断名称 = diag_list)

结果导出为Excel

可将两个统计结果存入同一个Excel的不同工作表:

output_list <- list(
  "全人群诊断统计" = diagnosis_total,
  "多诊断人群诊断统计" = diagnosis_multi
)

write.xlsx(output_list, file = "SUD诊断统计结果.xlsx", overwrite = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:51:03