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

R语言如何批量生成多列计算诊断前不同组别口服药物的ddd剂量

R实现诊断前口服药物分组合计剂量的方案

原有代码的问题

  • 未将drug_group取值与新增的ddd_<组别>列做对应匹配,所有新增列都直接赋值全量ddd值
  • 筛选条件逻辑错误:误将drug_type字段作为drug_group判断,且未处理ddd为NA的场景
  • 对向量做条件判断时用了if而不是向量化的ifelse/case_when,会触发逻辑判断长度不匹配的警告

正确实现代码

基于tidyverse的方案,可自动适配任意数量的drug_group分组,无需手动配置每个分组:

library(tidyverse)

# 自动读取所有drug_group取值,无需手动枚举
drug_groups <- unique(df1$drug_group)

df2 <- df1 %>%
  mutate(
    # 遍历所有分组生成对应ddd_列
    across(all_of(drug_groups),
      ~ case_when(
        # 同时满足四个条件时取ddd值,否则返回0
        drug_type == "oral" &
        prescribed_date < dia_date &
        drug_group == cur_column() &
        !is.na(ddd) ~ ddd,
        TRUE ~ 0
      ),
      # 自动生成ddd_小写组别的列名
      .names = "ddd_{tolower(.col)}"
    )
  )

运行上述代码得到的df2与你给出的示例输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:39:03