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

使用R统计REDCap数据库中患者不良事件重复发生次数

解决REDCap重复事件中统计有效不良事件数量的问题

核心思路

REDCap的重复事件结构会让同一患者对应多行数据:主数据行(ae_repeat=NA)存储患者基本信息,重复事件行(ae_repeat=1)记录不良事件。我们需要先按患者ID分组统计有效不良事件(ae_type非NA)的数量,再将统计结果合并回原数据集。

具体代码实现

首先加载dplyr工具包:

library(dplyr)

1. 修正列名(处理示例笔误)

示例数据中列名recor_id应为record_id,先修正:

df <- df %>% rename(record_id = recor_id)

2. 统计每位患者的有效不良事件数

# 分组统计有效不良事件总数
ae_count_summary <- df %>%
  group_by(record_id) %>%
  summarise(ae_count = sum(!is.na(ae_type)), .groups = "drop")
  • sum(!is.na(ae_type)):将ae_type非NA的行标记为TRUE(转数值为1),求和得到有效事件总数
  • .groups = "drop":统计完成后取消分组,避免后续操作的分组干扰

3. 合并统计结果到原数据集

如果需要保留所有行(包括重复事件行),使用left_join:

df_with_ae_count <- df %>%
  left_join(ae_count_summary, by = "record_id")

如果只需要保留包含患者基本信息的主数据行(ae_repeat=NA):

main_data_with_ae_count <- df %>%
  filter(is.na(ae_repeat)) %>%
  left_join(ae_count_summary, by = "record_id")

验证结果

对示例数据执行后,最终统计值为:

  • 患者1的ae_count为1
  • 患者2的ae_count为1
  • 患者3的ae_count为2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:32:07