Read Ella
Comments in-line below
On 14/08/2015 00:36, mcknight e. (em8g14) wrote:
Hello,
I am working on ecological data covering a meta-analysis on invasive species
traits.
I am not very skilled in R and would love if someone could assist me in my
production of multi-line forest plots.
The data I have is: random effects mixed model and is further divided into
subsets, I have used metafor package and here is a breakdown of my code =
#this is my main data calculation into effect sizes
MA <- escalc (measure="SMD", m1i=Invasive..mean, sd1i=sd.invasive,
n1i=N.invasive, m2i=Control.mean, sd2i=sd.control, n2i=N.control, data=dataset)
res.MA <- rma(yi,vi,data=MA,method="REML");res.MA #random-effects models ;
"HS" Viechtbauer (2005)
Why does your comment say "HS" when you have in fact asked for it to
estimate tau^2 using REML (which is the default)?
#separating data
lab <- subset (x=MA, Type.of.ex=="Lab")
field <- subset (x=MA, Type.of.ex=="Field")
You do not need to do that since rma.uni has a subset parameter as you
use later
res.MAlab <- rma(yi,vi,data=lab,method="REML");res.MAlab #random-effects models ;
"HS" Viechtbauer (2005)
res.MAfield <- rma(yi,vi,data=field,method="REML");res.MAfield #random-effects models ;
"HS" Viechtbauer (2005)
Could you not get the estimates you want by using Type.of.ex as a
moderator here with the full dataset?
From here on it is difficult to be sure what to say without more
knowledge about your dataset and the underlying science but I wonder
whether in fact you need to fit a multivariate model instead if you have
(say) k studies each giving 6 trait estimates, and so on. If that is the
way to go you need to read
?rma.mv
Please set your mailer to not send HTML as it mangles your messages and
it is more readable if you (a) put each command on a separate line (b)
use more spaces. Disk space is cheap.
res.traitlab <- rma(yi,vi,mods= ~ factor(Trait)-1,data=lab);res.traitlab #model
for traits
res.traitfield <- rma(yi,vi,mods= ~ factor(Trait)-1,data=field);res.traitfield
#model for each lab traits
res.labct <- rma(yi,vi,subset=Trait=="Consumption",data=lab);res.labct
res.labec <- rma(yi,vi,subset=Trait=="Exploitative
competition",data=lab);res.labec
res.labgr <- rma(yi,vi,subset=Trait=="Growth",data=lab);res.labgr
res.labic <- rma(yi,vi,subset=Trait=="Interference
competition",data=lab);res.labic
res.labpa <- rma(yi,vi,subset=Trait=="Predator avoidance",data=lab);res.labpa
res.labpe <- rma(yi,vi,subset=Trait=="Predator escape",data=lab);res.labpe
#model for each field traits
res.fieldct <- rma(yi,vi,subset=Trait=="Consumption",data=field);res.labct
res.fieldec <- rma(yi,vi,subset=Trait=="Exploitative
competition",data=field);res.labec
res.fieldgr <- rma(yi,vi,subset=Trait=="Growth",data=field);res.labgr
res.fieldic <- rma(yi,vi,subset=Trait=="Interference
competition",data=field);res.labic
res.fieldpa <- rma(yi,vi,subset=Trait=="Predator
avoidance",data=field);res.labpa
res.fieldpe <- rma(yi,vi,subset=Trait=="Predator escape",data=field);res.labpe
#producing a graph for lab data
estimateslab <- c(coef(res.labct), coef(res.labec), coef(res.labgr),
coef(res.labic), coef(res.labpa),coef(res.labpe))
varianceslab <- c(vcov(res.labct), vcov(res.labec), vcov(res.labgr),
vcov(res.labic), vcov(res.labpa),vcov(res.labpe))
labelslab <- c("Consumption (109)","Exploitative competition (21)","Growth (33)","Interference
competition (31)","Predator avoidance (4)","Predator escape (61)")
forest(estimateslab, varianceslab, slab=labelslab, digit=0, annotate=F, xlab="Mean
effect size",ylim=c(0,11))
#producing a graph for field data
estimatesfield <- c(coef(res.fieldct),coef(res.fieldec), coef(res.fieldgr),
coef(res.fieldic),coef(res.fieldpa),coef(res.fieldpe))
variancesfield <- c(vcov(res.fieldct),vcov(res.fieldec), vcov(res.fieldgr),
vcov(res.fieldic), vcov(res.fieldpa), vcov(res.fieldpe))
labelsfield <- c("Consumption (7)","Exploitative competition (19)","Growth (2)","Interference
competition (34)","Predator avoidance (2)","Predator escape (15)")
forest(estimatesfield, variancesfield, slab=labelsfield,digit=0,annotate=F,xlab="Mean effect
size",ylim=c(0,11)) # "psize=1" size of mean box on forest plot
addpoly(res.MAfield, row=0.2, cex=1, atransf=F, mlab="RE Model Field Studies
(79)",annotate=F)
OK, so sorry for code overload... I hope you can understand what i have done.
What i need it to produce one graph with both data sets Lab and field showing
effect sizes for each of the mentioned traits. Im not super up to scratch on R
and some of the current code was shared through a colleague, however this
person isnt great at plots.
Please please can someone help me. Im currently wasting heaps of my time and
getting no where.
Sincerely grateful
Ella
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
--
Michael
http://www.dewey.myzen.co.uk/home.html
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.