0

我正在尝试绘制网络荟萃分析的结果。我已经成功地生成了每种治疗相对于安慰剂的等级概率。但是,当我调用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", "Prieto", "Scott", "Scott", "Mickle", "Mickle", "Yang", "Yang", "Zhao", "Zhao")
sampleSize<-c(3886, 3876, 218, 214, 2040, 2014, 137, 137, 683, 683, 221, 230)
responders<-c(114, 94, 3, 8, 30, 20, 1, 4, 9, 11, 1, 2)
treatment<-c("dx1", "px1", "rx1", "tx1", "rx1", "ax1", "zx1", "tx1", "gx1", "tx1", "ax1", "px1")
df<-as.data.frame(study, sampleSize, responders, treatment)
4

1 回答 1

1

文档中,该relative.effect()函数需要

一个 S3 类的对象,mtc.result用于派生相关效果。

在您的示例中,该nw.mcmc对象是 type 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"))

在此处输入图像描述

于 2020-12-29T02:02:45.033 回答