'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