森林相对.效果/结果错误[[“模型”]]:下标越界

问题描述

我正在尝试绘制网络元分析的结果。我已经成功地生成了每种治疗相对于安慰剂的排名概率。但是,当我调用 forest(relative.effect(results.rank)) 时,我遇到以下错误

Error in result[["model"]] : subscript out of bounds

我知道这个论坛上有很多关于“下标越界”的问题,但是我申请的没有一个能充分解决我的问题。

我能否得到关于此错误是否意味着我标记变量的方式有问题的指示,或者我是否需要在 forest(relative effect(results.rank)) 行中指定以某种方式加宽边界?

非常感谢任何指导。

12 月 29 日更新.... 为最小上下文道歉,这是我的代码

library(gemtc)
library(rjags)
library(readxl)
df<-read_xlsx("...Book1.xlsx")
#Create network model#
nw<-mtc.network(data.ab=df,treatments=unique(df$treatment))
#Build model#
nw.model <- mtc.model(nw,linearModel = "random",n.chain = 4,type="consistency",likelihood='binom',link="logit")
#Run MCMC#
nw.mcmc <- mtc.run(nw.model,n.adapt = 50,n.iter = 10000,thin = 10)
#Rank treatments#
nw.rank<-rank.probability(nw.mcmc,preferredDirection = -1)
#Plot relative effect#
forest(relative.effect(nw.rank))

我对这个问题的数据是:

study<-c("Jones","Jones","Prieto","Scott","Mickle","Yang","Zhao","Zhao")
sampleSize<-c(3886,3876,218,214,2040,2014,137,683,221,230)
responders<-c(114,94,3,8,30,20,1,4,9,11,2)
treatment<-c("dx1","px1","rx1","tx1","ax1","zx1","gx1","px1")
df<-as.data.frame(study,sampleSize,responders,treatment)

解决方法

the docs 开始,relative.effect() 函数需要

S3 类 mtc.result 的一个对象,用于从中导出相对效果。

在您的示例中,nw.mcmc 对象的类型为 mtc.result,而 nw.rank 不是。

class(nw.mcmc) # "mtc.result"
class(nw.rank) # "mtc.rank.probability"

因此,在您对 nw.mcmc 的调用中传递 relative.effect()。另请注意,第二个参数 t1 是必需的,您的代码中缺少此参数:

t1:用于计算相对影响的基线列表。将扩展以匹配 t2 的长度。

使用正确的对象调用 forest/relative.effect,并将处理级别作为基线,运行没有错误:

forest(relative.effect(nw.mcmc,"ax1"))

enter image description here