【问题标题】:mtc.network error "Error in `levels<-`(`*tmp*`, value = as.character(levels)) : factor level [5] is duplicated"mtc.network 错误“`levels<-`(`*tmp*`, value = as.character(levels)) 中的错误:因子级别 [5] 重复”
【发布时间】:2021-04-02 12:44:30
【问题描述】:

我在这里看到了一些与我的查询类似的问题,但这些解决方案对我不起作用。我正在尝试构建网络元分析,并在调用 mtc.network 命令后遇到以下错误:

Error in `levels<-`(`*tmp*`, value = as.character(levels)) : factor level [5] is duplicated

我的数据是

library(gemtc)
library(rjags)

study<-c("Jones", "Jones", "Prieto", "Prieto", "Scott", "Scott", "Mickle", "Mickle", "Yang", "Yang", "Zhao", "Zhao")
n<-c(3886, 3876, 218, 214, 2040, 2014, 137, 137, 683, 683, 221, 230)
surv<-c(114, 94, 3, 8, 30, 20, 1, 4, 9, 11, 1, 2)
treat<-c("dx1", "px1", "rx1", "tx1", "rx1", "ax1", "zx1", "tx1", "gx1", "tx1", "ax1", "px1")

df<-data.frame(study, n, surv, treat)

network1<-mtc.network(data.ab=df, treatments=df$treat)

然后我收到这条消息

Error in `levels<-`(`*tmp*`, value = as.character(levels)) : 
  factor level [5] is duplicated

我将非常感谢您在这方面的任何帮助。

【问题讨论】:

  • 在文档中,它说 treatments 是一个具有唯一 ID 和描述的 data.frame
  • 或许,考虑更改列名names(df) &lt;- c("study", "sampleSize", "responders", "treatment");network &lt;- mtc.network(df, description="Example", treatments=unique(df$treatment)),输出为network# MTC dataset: Example Arm-level data:..
  • @arkun 谢谢队友,目前似乎正在工作。在调用 mtc.network“不推荐在 tibble 上设置行名”后收到一点警告。
  • @Sandra 那是因为它是一个小标题。如果要删除警告,可以使用df &lt;- as.data.frame(df) 转换为data.frame
  • @akrun 感谢您的提醒!

标签: r rjags metafor


【解决方案1】:

该函数似乎需要以特定方式格式化数据。我们可以像示例数据集中一样更改列名,这样就可以了

names(df) <- c("study", "sampleSize", "responders", "treatment")
network <- mtc.network(df, description="Example", treatments=unique(df$treatment)) 

【讨论】:

    猜你喜欢
    • 2021-03-28
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多