library(pacman)
pacman::p_load(metafor,readxl,metaviz,MetaAnalyser,rio)
#library(readxl,metaviz,MetaAnalyser,rio)
#Effektstärke
Bor1 <- data.frame(read_excel("Borenstein_1.xls"))
Bor1 <- escalc(measure = "SMD", m1i=mw.t, m2i = mw.c, sd1i = sd.t, sd2i = sd.c, n1i= n.t, n2i= n.c, data= Bor1)
#Heterogenitätstests Fixed/Random-Effects / Test for heterogeneity
fe.mod <- rma(yi = yi, vi = vi, measure = "SMD", method = "FE", slab = Studie, data = Bor1)
forest(fe.mod, showweights = TRUE)
re.mod <- rma(yi = yi, vi = vi, measure = "SMD", method = "DL", slab = Studie, data = Bor1)
forest(re.mod, showweights = TRUE)
confint(re.mod)
predict(re.mod)
#Integration mit kategorialer Variable / Integration categorical variable
Bor2 <- read.delim2("Borenstein_2.txt")
fe.all <- rma(yi=d, vi=var.d, measure="SMD", method="FE", slab=study, data=Bor2)
fe.A <- rma(yi=d, vi=var.d, measure="SMD", method="FE", slab=study,
subset=group=="a", data=Bor2)
fe.B <- rma(yi=d, vi=var.d, measure="SMD", method="FE", slab=study,
subset=group=="b", data=Bor2)
#Im Modell mit Kovariable: / Model with categorical variable
fe.mod <- rma(yi=d, vi=var.d, mods= ~group, measure="SMD", method="FE",
slab=study, data=Bor2)
fe.mod
#Gruppe ‘a’ als Referenzgruppe: / Group a as reference
fe.mod <- rma(yi=d, vi=var.d, mods= **~relevel(group, ref="b")**, measure="SMD", method="FE",
slab=study, data=Bor2)
re.mod <- rma(yi=d, vi=var.d, mods= ~group, measure="SMD", method="DL",
slab=study, data=Bor2)
#Meta-Regression
bcg <- escalc(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, digits=3, data=dat.bcg)
bcg[, -c(1,9)]所以我应该用R写一个元分析,但以前从未用过R。我有点不知所措。上面的代码正在工作,除了作为参考组a下的重新级别函数外,我想在子群分析中更改参考组。所以我有来自A组和B组的研究,并且想改变参照组。对于重新级别函数,我得到以下错误:
Relevel.default中的错误(组,ref = "b"):'relevel‘仅用于(无序)因子
抱歉,如果我贴的代码太多了。我不太确定。提前谢谢。
发布于 2021-02-12 22:36:45
relevel()函数只适用于各种因素,但变量group不是一个因素,只是一个字符串/字符变量。因此,如果您想要使级别mods= ~ relevel(factor(group), ref="b")成为引用组,只需执行b。
https://stackoverflow.com/questions/66177938
复制相似问题