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

dosresmeta包处理无参照组数据框报错问题求助

解决dosresmeta包无参照组分析的报错问题

问题背景

我们正在开展脓毒性休克患者初始6小时左右液体最优剂量的综述,所有患者均接受治疗,无参照组。使用dosresmeta包自带的alcohol_cvd示例可正常运行:

library(dosresmeta)

data("alcohol_cvd")

quadr <- dosresmeta(formula = logrr ~ dose + I(dose^2), type = type, id = id,
                    se = se, cases = cases, n = n, data = alcohol_cvd)

问题重现

移除0酒精暴露的研究人群后,运行代码出现报错:

data("alcohol_cvd")
alcohol_cvd <- alcohol_cvd[alcohol_cvd$dose != 0, ]
quadr <- dosresmeta(formula = logrr ~ dose + I(dose^2), type = type, id = id,
                    se = se, cases = cases, n = n, data = alcohol_cvd)

错误信息:

Error in n[id == j] : object of type 'closure' is not subsettable

尝试添加模拟治疗场景的虚拟参照组后,仍出现相同错误:

data.frame(
  id = 7, 
  author = 'test',
  type = 'ci',
  dose = 0.0,
  cases = 0,
  n = 0,
  logrr = 0, # same error if logrr = 1
  se = NA # same error if se = 0
)

解决建议

核心原因

dosresmeta的剂量-反应模型要求每个研究(按id分组)内至少包含一个参照剂量组(通常为dose=0);同时不能设置n=0,因为R语言中n()是内置函数,当数据列n出现0或缺失时,函数会误将其识别为内置函数n(),触发"object of type 'closure' is not subsettable"错误。

修正方案

  1. 为每个独立研究(每个id)添加专属的虚拟参照组,确保虚拟组的n为极小正数值(如1),cases设为0,logrr设为0(参照组效应量为0),se设为极小值(如0.001,避免NA引发的问题)。
  2. 修正后的完整代码:
library(dosresmeta)
data("alcohol_cvd")

# 移除原数据中的0剂量组
alcohol_cvd <- alcohol_cvd[alcohol_cvd$dose != 0, ]

# 为每个id生成对应的虚拟参照组
virtual_refs <- do.call(rbind, lapply(unique(alcohol_cvd$id), function(study_id) {
  study_author <- unique(alcohol_cvd$author[alcohol_cvd$id == study_id])
  data.frame(
    id = study_id,
    author = study_author,
    type = 'ci',
    dose = 0.0,
    cases = 0,
    n = 1,          # 必须为正数值,不能为0
    logrr = 0,      # 参照组效应量固定为0
    se = 0.001      # 避免NA,设极小值
  )
}))

# 合并原数据与虚拟参照组
alcohol_cvd_updated <- rbind(alcohol_cvd, virtual_refs)

# 重新拟合剂量-反应模型
quadr <- dosresmeta(formula = logrr ~ dose + I(dose^2), type = type, id = id,
                    se = se, cases = cases, n = n, data = alcohol_cvd_updated)

原理说明

每个研究必须包含参照组,才能让dosresmeta正确计算不同剂量的相对效应;同时避免n=0的设置,消除内置函数n()的命名混淆问题,确保模型正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:31:03