'relevel' only works with (unordered) factors

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)]

So I am supposed to write a meta-analysis in R but have never used R before. I am a bit overwhelmed. The code above is working except for the relevel function under group a as reference, in which I want to change the reference group in a subgroup analysis. So I have studies from group a and group b and want to change the reference group. For the relevel function I get the following error:

Error in relevel.default(group, ref = "b") : 'relevel' only for (unordered) factors

Sorry if I posted more code than necessary. I wasn't sure. Thanks in advance.

1 Answer

The relevel() function only works on factors, but variable group is not a factor, just a string/character variable. So just do mods= ~ relevel(factor(group), ref="b") if you want to make level b the reference group.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like