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

R中整理EHR导出数据:将分散info文本合并为tidymodel输入格式

合并EHR数据的info列条目(适配tidymodel输入格式)

解决思路

通过生成分组标识,将同一条目的多行info内容合并到对应条目行,最终实现每行对应一个完整条目。核心是利用cumsum()识别条目起始行,再按分组聚合合并内容。

代码实现

首先加载tidyverse工具包(适配tidymodel生态):

library(tidyverse)

假设你的数据框名为ehr_data,执行以下代码完成整理:

ehr_cleaned <- ehr_data %>%
  # 生成分组ID:每遇到op_saal/vorname/seite均非空的行,分组号递增
  mutate(group_id = cumsum(!is.na(op_saal) & !is.na(vorname) & !is.na(seite))) %>%
  # 按分组聚合数据
  group_by(group_id) %>%
  summarise(
    op_saal = first(na.omit(op_saal)),  # 提取分组内唯一非空的op_saal值
    vorname = first(na.omit(vorname)),
    seite = first(na.omit(seite)),
    info = str_c(info, collapse = ", ")  # 合并同分组的所有info内容
  ) %>%
  ungroup() %>%
  select(-group_id)  # 移除临时分组ID列

关键逻辑说明

  • cumsum()函数会为每个完整条目(起始行)分配唯一分组号,后续属于该条目的空行自动归入同一分组。
  • first(na.omit(col))确保只保留每个分组中关键列的有效数据(因为每个条目仅起始行有这些值)。
  • str_c(..., collapse = ", ")按照示例要求,用逗号加空格合并多行info内容,保证格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:35:44