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

如何在R中用data.table为跨所有STUDY的共享变量创建YES/NO标识

R中使用data.table实现全研究覆盖变量标识的方法

实现逻辑

  • 第一步:计算数据集中所有不同研究的总数量
  • 第二步:按VARIABLE字段分组,统计每个变量出现的不同研究数量
  • 第三步:将变量对应的研究数量和总研究数对比,相等则FLAG为YES,否则为NO

代码实现

首先加载data.table包:

library(data.table)

读取本地数据可以使用fread,适配大文件读取场景:

# 替换为你的实际数据路径
dt <- fread("your_data_path.csv")

你提供的示例数据构造代码如下:

dt <- data.table(
  STUDY = c("STUDY1", "STUDY1", "STUDY1", "STUDY2", "STUDY2", "STUDY2", "STUDY3", "STUDY3", "STUDY3"),
  VARIABLE = c("AGE", "SEX", "WT", "AGE", "RACE", "WT", "AGE", "SEX", "WT")
)

核心计算FLAG的代码:

# 计算总研究数
total_study_cnt <- dt[, uniqueN(STUDY)]
# 按变量分组生成FLAG
dt[, FLAG := fifelse(uniqueN(STUDY) == total_study_cnt, "YES", "NO"), by = VARIABLE]

注:这里使用data.table自带的fifelse而非基础ifelse,运算效率更高,适配大规模数据的处理需求。

结果说明

执行完上述代码后,dt会自动新增FLAG列,输出结果和你给出的预期完全一致,原有数据的其他字段都会完整保留,无需额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:45:03