library(ggmap)
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.1.2
## Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
## Please cite ggmap if you use it! See citation("ggmap") for details.
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✔ tibble 3.2.1 ✔ dplyr 1.1.1
## ✔ tidyr 1.1.4 ✔ stringr 1.4.0
## ✔ readr 2.1.2 ✔ forcats 0.5.1
## ✔ purrr 1.0.1
## Warning: package 'tibble' was built under R version 4.1.2
## Warning: package 'readr' was built under R version 4.1.2
## Warning: package 'purrr' was built under R version 4.1.2
## Warning: package 'dplyr' was built under R version 4.1.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(ggplot2)
library(dplyr)
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## The following object is masked from 'package:purrr':
##
## some
library(meta)
## Warning: package 'meta' was built under R version 4.1.2
## Loading 'meta' package (version 5.2-0).
## Type 'help(meta)' for a brief overview.
## Readers of 'Meta-Analysis with R (Use R!)' should install
## older version of 'meta' package: https://tinyurl.com/dt4y5drs
library(metafor)
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
##
## expand, pack, unpack
##
## Loading the 'metafor' package (version 3.0-2). For an
## introduction to the package please type: help(metafor)
##
## Attaching package: 'metafor'
## The following object is masked from 'package:car':
##
## vif
wd <- list()
# commonly used paths in my working directory
wd$data <- "//Users/rasmanns/Dropbox/Lavoro/Manuscripts/2023/Victoria_terpenes/data/processed/"
wd$output <- "/Users/rasmanns/Dropbox/Lavoro/Manuscripts/2023/Victoria_terpenes/data/output/"
tab<-read.csv(paste0(wd$data, "data_victoria.csv"), h=T, na.strings= "NA", sep=",", row.names = 1,
stringsAsFactors=FALSE)
names(tab)
## [1] "Reference" "Family" "Genus" "Species"
## [5] "Glands" "Status" "Domesticated" "Onthogeny"
## [9] "Organ_type" "Organ_position" "Season" "Lat"
## [13] "Long" "Elevation" "MH" "MO"
## [17] "SH" "SO" "Monoterpenoids" "Sesquiterpenoids"
## [21] "Diterpenoids" "yield" "method"
tab$Family <- as.factor(tab$Family)
tab$Genus <- as.factor(tab$Genus)
tab$Species <- as.factor(tab$Species)
tab$Glands <- as.factor(tab$Glands)
tab$Status <- as.factor(tab$Status)
tab$Domesticated <- as.factor(tab$Domesticated)
tab$Onthogeny <- as.factor(tab$Onthogeny)
tab$Organ_type <- as.factor(tab$Organ_type)
tab$Organ_position <- as.factor(tab$Organ_position)
tab$Season <- as.factor(tab$Season)
tab$method <- as.factor(tab$method)
str(tab)
## 'data.frame': 853 obs. of 23 variables:
## $ Reference : chr "Morshedloo_2018" "Morshedloo_2018" "Morshedloo_2018" "Morshedloo_2018" ...
## $ Family : Factor w/ 15 levels "Anacardiaceae",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Genus : Factor w/ 38 levels "Abies","Achilea",..: 30 30 30 30 30 30 30 30 30 30 ...
## $ Species : Factor w/ 42 levels "Abies_sibirica",..: 34 34 34 34 34 34 34 34 34 34 ...
## $ Glands : Factor w/ 2 levels "external","internal": 2 2 2 2 2 2 2 2 2 2 ...
## $ Status : Factor w/ 2 levels "cultivated","wild": 2 2 2 2 2 2 2 2 2 2 ...
## $ Domesticated : Factor w/ 1 level "no": 1 1 1 1 1 1 1 1 1 1 ...
## $ Onthogeny : Factor w/ 3 levels "bloom","fruit",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ Organ_type : Factor w/ 3 levels "reproductive",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Organ_position : Factor w/ 3 levels "aboveground",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ Season : Factor w/ 8 levels "autumn","no info",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Lat : num 34.1 35.2 35.5 36.2 35.8 ...
## $ Long : num 58.5 60.4 58.3 59 51.2 ...
## $ Elevation : num 1990 1304 1639 1550 1376 ...
## $ MH : num 10.4 5.6 30.5 22.2 10.9 1.9 13.1 5.9 9.9 7.1 ...
## $ MO : num 3 4.4 3.4 3.3 3.1 2.1 2.5 3.9 1.4 1.4 ...
## $ SH : num 36.9 6.5 25.5 36.3 44 21.3 37 26.9 54.5 50.4 ...
## $ SO : num 5.5 4.3 5.3 7.3 2.9 8.9 7 4.2 3.4 6 ...
## $ Monoterpenoids : num 13.4 10 33.9 25.5 14 4 15.6 9.8 11.3 8.5 ...
## $ Sesquiterpenoids: num 42.4 10.8 30.8 43.6 46.9 30.2 44 31.1 57.9 56.4 ...
## $ Diterpenoids : num 22.6 8 5.8 6.7 2.8 25 7.4 22 7.5 10.6 ...
## $ yield : num 0.08 0.08 0.18 0.19 0.04 0.1 0.13 0.07 0.07 0.12 ...
## $ method : Factor w/ 2 levels "Hydrodistillation",..: 1 1 1 1 1 1 1 1 1 1 ...
names(tab)
## [1] "Reference" "Family" "Genus" "Species"
## [5] "Glands" "Status" "Domesticated" "Onthogeny"
## [9] "Organ_type" "Organ_position" "Season" "Lat"
## [13] "Long" "Elevation" "MH" "MO"
## [17] "SH" "SO" "Monoterpenoids" "Sesquiterpenoids"
## [21] "Diterpenoids" "yield" "method"
tab$ratio <- tab$Sesquiterpenoids /tab$Monoterpenoids
tab1 <- tab %>%
filter(Sesquiterpenoids > 0, Monoterpenoids > 0) %>%
filter(Status == "wild")
p<-ggplot(tab1, aes(x=abs(Lat), y=log(ratio+1))) +
geom_point(size=2, shape=21) +
geom_smooth(method=lm, se=T, fullrange=TRUE)+
theme(legend.position = "none")+
labs( x ="Latitude", y = "Sesquiterpenes / Monoterpenes (log)")+
theme_bw()
p
## `geom_smooth()` using formula = 'y ~ x'
p1<-ggplot(tab1, aes(x=abs(Lat), y=log(ratio+1), color = Reference)) +
geom_point(size=2, shape=21) +
geom_smooth(method=lm, se=F, fullrange=F)+
#scale_color_brewer(palette = "RdYlBu")+
labs( x ="LatitudeXXXXXXXXXX", y = "Sesquiterpenes / Monoterpenes (log)")+
theme_bw()+
theme(legend.position = "none")
p1
## `geom_smooth()` using formula = 'y ~ x'
library(ggpubr)
p3<-ggarrange(p, p1,
labels = c("A", "B"),
nrow = 2, ncol= 1)
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
p3
hist(log(tab1$ratio+1))
fit<-glm(log(ratio+1)~Lat+Species, data = tab1, family = quasipoisson())
#library(car)
Anova(fit)
####
tab3<-tab1
tab3$Reference<-as.factor(tab3$Reference)
tab3$Lat <- abs(tab3$Lat)
Y<-split(tab3, list(tab3$Species, tab3$Reference), drop = TRUE)
for(i in 1:length(Y)) {
Y[[i]]$Reference<-droplevels(Y[[i]]$Reference)
Y[[i]]$Family<-droplevels(Y[[i]]$Family)
Y[[i]]$Genus<-droplevels(Y[[i]]$Genus)
Y[[i]]$Species<-droplevels(Y[[i]]$Species)
Y[[i]]$Status<-droplevels(Y[[i]]$Status)
Y[[i]]$Organ_position<-droplevels(Y[[i]]$Organ_position)
Y[[i]]$Organ_type<-droplevels(Y[[i]]$Organ_type)
}
Y[[1]]
Y2<-Y[sapply(Y, nrow)>3]#####Only keep groups with 3 or more duplicates
###plots per reference
for(i in 1:length(Y2)) {
name<-Y2[[i]]$Reference
pdf(paste("plot",name,".pdf", sep="_"), # The directorY2 Y2ou want to save the file in
width = 4, # The width of the plot in inches
height = 4) # The height of the plot in inches
plot(Y2[[i]]$ratio~Y2[[i]]$Lat)
fit<-lm(Y2[[i]]$ratio~Y2[[i]]$Lat)
summary(fit)
abline(fit)
dev.off()
}
i
## [1] 39
mat <- matrix(nrow = length(Y2), ncol = 13)
colnames(mat)<-c( "Family", "Genus", "Species", "Status", "Organ_position", "n", "slope", "intercpet", "sd", "se", "ci", "r", "Reference" )
for(i in 1:length(Y2)) {
mat[i,1]<-levels(Y2[[i]]$Family)
mat[i,2]<-levels(Y2[[i]]$Genus)
mat[i,3]<-levels(Y2[[i]]$Species)
mat[i,4]<-levels(Y2[[i]]$Status)
mat[i,5]<-levels(Y2[[i]]$Organ_position)
mat[i,6]<-nrow(Y2[[i]])
fit<-lm(ratio~Lat, data = Y2[[i]], na.action=na.omit)
summary(fit)
mat[i,7]<-coefficients(fit)[1]
mat[i,8]<-coefficients(fit)[2]
mat[i,9] <- sd(fit$residuals)
mat[i,10] <- sd(fit$residuals)/sqrt(nrow(Y2[[i]]))
mat[i,11] <- sd(fit$residuals)/sqrt(nrow(Y2[[i]])) * qt((1-0.05)/2 + .5, nrow(Y2[[i]])-1)
##Calculate the pearson correlation coefficient
r <- cor(Y2[[i]]$ratio, Y2[[i]]$Lat, method = c("pearson"))
mat[i,12] <- r
mat[i,13]<-levels(Y2[[i]]$Reference)
}
mat
## Family Genus Species Status
## [1,] "Asteraceae" "Achillea" "Achillea_ligustica" "wild"
## [2,] "Asteraceae" "Achilea" "Achilea_santolina" "wild"
## [3,] "Myrtaceae" "Leptospermum" "Leptospermum_scoparium" "wild"
## [4,] "Verbenaceae" "Aloysia" "Aloysia_citriodora" "wild"
## [5,] "Lamiaceae" "Thymus" "Thymus_algeriensis" "wild"
## [6,] "Asteraceae" "Baccharis" "Baccharis_dracunculifolia" "wild"
## [7,] "Lamiaceae" "Stachys" "Stachys_cretica" "wild"
## [8,] "Verbenaceae" "Lantana" "Lantana_camara" "wild"
## [9,] "Lamiaceae" "Thymus" "Thymus_algeriensis" "wild"
## [10,] "Hypericaceae" "Hypericum" "Hypericum_gaitii" "wild"
## [11,] "Apiaceae" "Ferula " "Ferula_assa_foetida" "wild"
## [12,] "Lamiaceae" "Zataria" "Zataria_multiflora" "wild"
## [13,] "Apiaceae" "Rhabdosciadium" "Rhabdosciadium_aucheri" "wild"
## [14,] "Malvaceae" "Tilia" "Tilia_cordata" "wild"
## [15,] "Cupressaceae" "Platycladus" "Platycladus_orientalis" "wild"
## [16,] "Asteraceae" "Conyza" "Conyza_canadensis" "wild"
## [17,] "Verbenaceae" "Lippia" "Lippia_integrifolia " "wild"
## [18,] "Cupressaceae" "Juniperus" "Juniperus_communis" "wild"
## [19,] "Asteraceae" "Baccharis" "Baccharis_trimera" "wild"
## [20,] "Lamiaceae" "Marrubium" "Marrubium_vulgare" "wild"
## [21,] "Anacardiaceae" "Rhus" "Rhus_coriaria" "wild"
## [22,] "Lauraceae" "Laurus" "Laurus_nobilis" "wild"
## [23,] "Myrtaceae" "Myrtus" "Myrtus_communis" "wild"
## [24,] "Cupressaceae" "Juniperus" "Juniperus_phoenicea" "wild"
## [25,] "Cupressaceae" "Juniperus" "Juniperus_communis" "wild"
## [26,] "Rutaceae" "Cedrelopsis" "Cedrelopsis_grevei" "wild"
## [27,] "Asteraceae" "Achyrocline" "Achyrocline_flaccida" "wild"
## [28,] "Pinaceae" "Abies" "Abies_sibirica" "wild"
## [29,] "Pinaceae" "Larix" "Larix_sibirica" "wild"
## [30,] "Pinaceae" "Picea" "Picea_obovata" "wild"
## [31,] "Pinaceae" "Pinus" "Pinus_sibirica" "wild"
## [32,] "Pinaceae" "Pinus" "Pinus_sylvestris" "wild"
## [33,] "Asteraceae" "Artemisia" "Artemisia_herba_alba" "wild"
## [34,] "Zingiberaceae" "Curcuma" "Curcuma_caesia" "wild"
## [35,] "Pinaceae" "Pinus" "Pinus_sylvestris" "wild"
## [36,] "Lamiaceae" "Minthostachys" "Minthostachys_mollis" "wild"
## [37,] "Lamiaceae" "Mentha" "Mentha_longifolia" "wild"
## [38,] "Lamiaceae" "Thymus" "Thymus_algeriensis" "wild"
## [39,] "Asteraceae" "Artemisia" "Artemisia_herba_alba" "wild"
## Organ_position n slope intercpet
## [1,] "aboveground " "16" "2.19534032687084" "-0.0489100486554073"
## [2,] "aboveground " "4" "0.862314162547713" "-0.0249852644388352"
## [3,] "aboveground " "87" "11.9265350680973" "-0.162243982705481"
## [4,] "aboveground " "36" "0.0242168040903491" "0.000883106187197159"
## [5,] "aboveground " "14" "-1.22427862043433" "0.039573466035315"
## [6,] "aboveground " "9" "9.25942026398558" "-0.249766904718999"
## [7,] "aboveground " "5" "833.21085914256" "-20.0609114676238"
## [8,] "aboveground " "4" "-60.1086906822739" "4.08902310604781"
## [9,] "aboveground " "14" "-6.74925333982989" "0.199139877326041"
## [10,] "aboveground " "7" "100.733065716171" "-4.56455456509961"
## [11,] "belowground" "10" "-96.4530239386431" "3.54145819881223"
## [12,] "aboveground " "14" "0.0477683367276122" "-0.000218624939687931"
## [13,] "aboveground " "7" "208.663072474138" "-3.86743638724963"
## [14,] "aboveground " "20" "6.61937605478432" "-0.0916207892643808"
## [15,] "aboveground " "16" "-0.383157964998242" "0.0395056918042912"
## [16,] "aboveground " "7" "0.610049101733275" "-0.00901313347609386"
## [17,] "aboveground " "30" "645.16977133589" "-21.4250488225789"
## [18,] "aboveground " "124" "19.6281359635847" "-0.257716623373768"
## [19,] "aboveground " "6" "22.6172744030149" "-0.648060254753765"
## [20,] "aboveground " "4" "-27.89353682367" "0.926872375990715"
## [21,] "aboveground " "14" "6.57151332641819" "-0.0693386701886008"
## [22,] "aboveground " "6" "-0.00807414481748333" "0.000469493915648686"
## [23,] "aboveground " "20" "-0.002409925697917" "0.000383567202591433"
## [24,] "aboveground " "7" "1.64515897309025" "-0.0309359978794859"
## [25,] "aboveground" "18" "-3.3748170354349" "0.0930447154477351"
## [26,] "aboveground " "5" "173.931989340947" "-6.89331446147765"
## [27,] "aboveground " "11" "-3.99265720068868" "0.162618402226467"
## [28,] "aboveground" "10" "-0.0307901271316012" "0.000818670544902937"
## [29,] "aboveground" "12" "-0.26178227801327" "0.00656531451046973"
## [30,] "aboveground" "10" "0.0207952144947804" "6.7065656489653e-05"
## [31,] "aboveground" "8" "0.0716323749734487" "-0.000546816094819466"
## [32,] "aboveground" "10" "4.19932487145654" "-0.067606474844083"
## [33,] "aboveground " "8" "0.921642481829476" "-0.0284691270784952"
## [34,] "belowground" "10" "1.36607123100028" "-0.0232513328569574"
## [35,] "aboveground " "16" "0.0162879403388974" "0.00300734681477576"
## [36,] "aboveground " "59" "0.581437567377174" "-0.0178086054705625"
## [37,] "aboveground " "8" "0.547633598304969" "-0.0135658964335685"
## [38,] "aboveground " "16" "3.09844911107718" "-0.0822050562268898"
## [39,] "aboveground " "7" "44.4418899081347" "-1.2868923524117"
## sd se ci
## [1,] "0.299174849808358" "0.0747937124520895" "0.159419024416735"
## [2,] "0.00320714201151073" "0.00160357100575537" "0.00510327862252624"
## [3,] "4.40807379510324" "0.472595117022019" "0.939487998829604"
## [4,] "0.0319801270592655" "0.00533002117654425" "0.0108205182482447"
## [5,] "0.0914257082468287" "0.0244345483287704" "0.0527876323443009"
## [6,] "1.30892018985972" "0.43630672995324" "1.00612512348958"
## [7,] "65.5817240408772" "29.3290386074067" "81.4304656816915"
## [8,] "6.27727689610307" "3.13863844805153" "9.98854833262299"
## [9,] "0.262096657852925" "0.0700482782788685" "0.151330104832851"
## [10,] "8.31736079942641" "3.14366689138281" "7.69227577257665"
## [11,] "15.798673489921" "4.99597922374717" "11.3016901861907"
## [12,] "0.010653764551718" "0.00284733834513472" "0.00615130051517369"
## [13,] "10.2052007576168" "3.85720332630601" "9.43823653141396"
## [14,] "0.758538653718128" "0.169614399327491" "0.355007017766455"
## [15,] "1.04712733076326" "0.261781832690814" "0.55797476832464"
## [16,] "0.130987316384862" "0.0495085520082971" "0.121143062642129"
## [17,] "187.637416115138" "34.2577484794148" "70.0649626628256"
## [18,] "1.78879142631088" "0.160638212192736" "0.317973491518525"
## [19,] "2.30065675255303" "0.939239186173917" "2.41439119129651"
## [20,] "2.06179360680491" "1.03089680340245" "3.28077372311692"
## [21,] "3.18470476546705" "0.85114815074314" "1.83879378687175"
## [22,] "0.00378007235194209" "0.00154320807551007" "0.00396694264751347"
## [23,] "0.00478252923818735" "0.00106940604809672" "0.00223829258259616"
## [24,] "0.149786670317047" "0.0566140399101896" "0.138529565197437"
## [25,] "0.305676979484449" "0.0720487550153584" "0.152009585694899"
## [26,] "9.59992059993536" "4.2932150080112" "11.9198757945544"
## [27,] "0.255902614025223" "0.0771575412357095" "0.171917715351017"
## [28,] "0.00413333276118817" "0.00130707458527474" "0.00295680813539075"
## [29,] "0.0316020047863305" "0.00912271298515989" "0.0200789559001122"
## [30,] "0.00887169753448113" "0.00280547709210606" "0.006346430098974"
## [31,] "0.00605856201638689" "0.00214202514301321" "0.00506508460069053"
## [32,] "0.67767175285976" "0.214298624499557" "0.484777168389475"
## [33,] "0.0878321030137539" "0.0310533378234504" "0.0734294757102343"
## [34,] "0.194745834607018" "0.0615840402188618" "0.139312777695151"
## [35,] "0.0831557047647063" "0.0207889261911766" "0.044310547282859"
## [36,] "0.0842563159523042" "0.0109692380170867" "0.0219573155265531"
## [37,] "0.0542037373009001" "0.0191639151055603" "0.0453154584140733"
## [38,] "0.102093011528637" "0.0255232528821594" "0.0544015257568858"
## [39,] "0.0933045716396935" "0.0352658132491484" "0.0862923363796066"
## r Reference
## [1,] "-0.145290414782529" "Bader_2022"
## [2,] "-0.932127578081017" "berramdane_2018"
## [3,] "-0.106165382913843" "Douglas_2004"
## [4,] "0.0416519536665058" "Elechosa_2017"
## [5,] "0.362334195373838" "ElHadj_Ali_2010"
## [6,] "-0.751417016802872" "frizzo_2008"
## [7,] "-0.209514958242088" "Goren_2011"
## [8,] "0.735914326850961" "Hung_2021"
## [9,] "0.614329312709098" "Jaouadi_2023"
## [10,] "-0.670752826143361" "Kamila_2022"
## [11,] "0.388346743506415" "Karimi_2020A"
## [12,] "-0.047452311573204" "Karimi_2020B"
## [13,] "-0.60697581207509" "Kazemeini_2020"
## [14,] "-0.187553492926222" "kosakouska_2015"
## [15,] "0.246926677710784" "Lei_2010"
## [16,] "-0.477171447846299" "Lis_2003"
## [17,] "-0.249578205340621" "Marcial_2016"
## [18,] "-0.339276434316575" "Martz_2009"
## [19,] "-0.542229627969647" "Minteguiaga_2014"
## [20,] "0.615959849215555" "Mkaddem_2022"
## [21,] "-0.0526934696133524" "Morshedloo_2018"
## [22,] "0.277468809356292" "Ozcan&Chalchat_2005"
## [23,] "0.129627596144662" "Rahimmalek_2013"
## [24,] "-0.456984830072945" "Rajcevic_2018"
## [25,] "0.486784295198759" "Rajčević_2022"
## [26,] "-0.862106020494077" "Rakotobe_2008"
## [27,] "0.831484069988482" "Retta_2008"
## [28,] "0.59181636836287" "Romanenko_2022"
## [29,] "0.594311417117758" "Romanenko_2022"
## [30,] "0.030361403248611" "Romanenko_2022"
## [31,] "-0.322649392136977" "Romanenko_2022"
## [32,] "-0.323544236160035" "Romanenko_2022"
## [33,] "-0.312769131782632" "Segal_1987"
## [34,] "-0.227597978539682" "Singh_2020"
## [35,] "0.0384895147759579" "Ustun_2006"
## [36,] "-0.485159824134521" "Van_Baren_2014"
## [37,] "-0.557950156206316" "Viljoen_2006"
## [38,] "-0.609184291379996" "Zouari_2012"
## [39,] "-0.294709715377948" "Zouari_2014"
mat2<-as.data.frame(na.omit(mat))
names(mat2)
## [1] "Family" "Genus" "Species" "Status"
## [5] "Organ_position" "n" "slope" "intercpet"
## [9] "sd" "se" "ci" "r"
## [13] "Reference"
mat2$Family<-as.factor(mat2$Family)
mat2$Genus<-as.factor(mat2$Genus)
mat2$Species<-as.factor(mat2$Species)
mat2$Status<-as.factor(mat2$Status)
mat2$Organ_position<-as.factor(mat2$Organ_position)
mat2$n<-as.numeric(mat2$n)
mat2$slope<-as.numeric(mat2$slope)
mat2$intercpet<-as.numeric(mat2$intercpet)
mat2$sd<-as.numeric(mat2$sd)
mat2$se<-as.numeric(mat2$intercpet)
mat2$ci<-as.numeric(mat2$ci)
mat2$r<-as.numeric(mat2$r)
mat2$w <- 1/mat2$se^2
pooled_effect <- sum(mat2$w*mat2$slope)/sum(mat2$w)
pooled_effect
## [1] 0.02228318
write.csv(mat2, file = paste0(wd$output, "terp2.csv"))
###metacor from Package‘metacor’
library(psychmeta)
## Warning: package 'psychmeta' was built under R version 4.1.2
## ----------------------------------------------------- psychmeta version 2.6.5 --
##
## Please report any bugs to github.com/psychmeta/psychmeta/issues
## or issues@psychmeta.com
##
## We work hard to produce these open-source tools for the R community.
## Please cite psychmeta when you use it in your research:
## Dahlke, J. A., & Wiernik, B. M. (2019). psychmeta: An R package for
## psychometric meta-analysis. Applied Psychological Measurement, 43(5), 415-416.
## https://doi.org/10.1177/0146621618795933
##
## --------------------------------------------------------------- Version check --
## ✔ Yay! Your copy of psychmeta is up to date!
##
## Attaching package: 'psychmeta'
## The following object is masked from 'package:metafor':
##
## matreg
## The following object is masked from 'package:meta':
##
## metareg
ma_obj <- ma_r(rxyi = "r", n = "n",
moderators = c("Reference"),
data = mat2)
## **** Running ma_r: Meta-analysis of correlations ****
ma_obj
summary(ma_obj)
## Bare-bones meta-analysis results
## ----------------------------------------------------------------------
## analysis_id pair_id construct_x construct_y analysis_type
## 1 1 1 X Y Overall
## 2 2 1 X Y Simple Moderator
## 3 3 1 X Y Simple Moderator
## 4 4 1 X Y Simple Moderator
## 5 5 1 X Y Simple Moderator
## 6 6 1 X Y Simple Moderator
## 7 7 1 X Y Simple Moderator
## 8 8 1 X Y Simple Moderator
## 9 9 1 X Y Simple Moderator
## 10 10 1 X Y Simple Moderator
## 11 11 1 X Y Simple Moderator
## 12 12 1 X Y Simple Moderator
## 13 13 1 X Y Simple Moderator
## 14 14 1 X Y Simple Moderator
## 15 15 1 X Y Simple Moderator
## 16 16 1 X Y Simple Moderator
## 17 17 1 X Y Simple Moderator
## 18 18 1 X Y Simple Moderator
## 19 19 1 X Y Simple Moderator
## 20 20 1 X Y Simple Moderator
## 21 21 1 X Y Simple Moderator
## 22 22 1 X Y Simple Moderator
## 23 23 1 X Y Simple Moderator
## 24 24 1 X Y Simple Moderator
## 25 25 1 X Y Simple Moderator
## 26 26 1 X Y Simple Moderator
## 27 27 1 X Y Simple Moderator
## 28 28 1 X Y Simple Moderator
## 29 29 1 X Y Simple Moderator
## 30 30 1 X Y Simple Moderator
## 31 31 1 X Y Simple Moderator
## 32 32 1 X Y Simple Moderator
## 33 33 1 X Y Simple Moderator
## 34 34 1 X Y Simple Moderator
## 35 35 1 X Y Simple Moderator
## 36 36 1 X Y Simple Moderator
## Reference k N mean_r sd_r se_r sd_res CI_LL_95 CI_UL_95
## 1 All Levels 39 689 -0.1364 0.384 0.0615 0.294 -0.2610 -0.0119
## 2 Bader_2022 1 16 -0.1501 NA 0.2524 NA -0.6448 0.3445
## 3 berramdane_2018 1 4 -1.0875 NA 0.1054 NA -1.2941 -0.8808
## 4 Douglas_2004 1 87 -0.1068 NA 0.1066 NA -0.3157 0.1022
## 5 Elechosa_2017 1 36 0.0422 NA 0.1687 NA -0.2885 0.3730
## 6 ElHadj_Ali_2010 1 14 0.3763 NA 0.2381 NA -0.0904 0.8429
## 7 frizzo_2008 1 9 -0.7984 NA 0.1282 NA -1.0496 -0.5471
## 8 Goren_2011 1 5 -0.2357 NA 0.4722 NA -1.1612 0.6898
## 9 Hung_2021 1 4 0.8586 NA 0.1518 NA 0.5611 1.1560
## 10 Jaouadi_2023 1 14 0.6380 NA 0.1645 NA 0.3156 0.9603
## 11 Kamila_2022 1 7 -0.7266 NA 0.1927 NA -1.1043 -0.3490
## 12 Karimi_2020A 1 10 0.4099 NA 0.2773 NA -0.1336 0.9535
## 13 Karimi_2020B 1 14 -0.0493 NA 0.2767 NA -0.5916 0.4930
## 14 Kazemeini_2020 1 7 -0.6576 NA 0.2317 NA -1.1117 -0.2034
## 15 kosakouska_2015 1 20 -0.1925 NA 0.2209 NA -0.6255 0.2405
## 16 Lei_2010 1 16 0.2552 NA 0.2414 NA -0.2180 0.7283
## 17 Lis_2003 1 7 -0.5169 NA 0.2992 NA -1.1033 0.0694
## 18 Marcial_2016 1 30 -0.2539 NA 0.1737 NA -0.5944 0.0866
## 19 Martz_2009 1 124 -0.3407 NA 0.0797 NA -0.4969 -0.1844
## 20 Minteguiaga_2014 1 6 -0.5965 NA 0.2881 NA -1.1611 -0.0318
## 21 Mkaddem_2022 1 4 0.7186 NA 0.2792 NA 0.1714 1.2658
## 22 Morshedloo_2018 1 14 -0.0547 NA 0.2765 NA -0.5967 0.4872
## 23 Ozcan&Chalchat_2005 1 6 0.3052 NA 0.4056 NA -0.4897 1.1001
## 24 Rahimmalek_2013 1 20 0.1330 NA 0.2254 NA -0.3086 0.5747
## 25 Rajcevic_2018 1 7 -0.4951 NA 0.3082 NA -1.0991 0.1090
## 26 Rajčević_2022 1 18 0.5011 NA 0.1816 NA 0.1451 0.8571
## 27 Rakotobe_2008 1 5 -0.9699 NA 0.0297 NA -1.0280 -0.9117
## 28 Retta_2008 1 11 0.8731 NA 0.0752 NA 0.7257 1.0204
## 29 Romanenko_2022 5 50 0.1569 0.486 0.2172 0.361 -0.4463 0.7600
## 30 Segal_1987 1 8 -0.3351 NA 0.3355 NA -0.9927 0.3225
## 31 Singh_2020 1 10 -0.2402 NA 0.3141 NA -0.8559 0.3754
## 32 Ustun_2006 1 16 0.0398 NA 0.2578 NA -0.4655 0.5450
## 33 Van_Baren_2014 1 59 -0.4893 NA 0.0999 NA -0.6851 -0.2936
## 34 Viljoen_2006 1 8 -0.5978 NA 0.2429 NA -1.0739 -0.1217
## 35 Zouari_2012 1 16 -0.6295 NA 0.1559 NA -0.9350 -0.3240
## 36 Zouari_2014 1 7 -0.3193 NA 0.3666 NA -1.0379 0.3993
## CR_LL_80 CR_UL_80
## 1 -0.519 0.247
## 2 NA NA
## 3 NA NA
## 4 NA NA
## 5 NA NA
## 6 NA NA
## 7 NA NA
## 8 NA NA
## 9 NA NA
## 10 NA NA
## 11 NA NA
## 12 NA NA
## 13 NA NA
## 14 NA NA
## 15 NA NA
## 16 NA NA
## 17 NA NA
## 18 NA NA
## 19 NA NA
## 20 NA NA
## 21 NA NA
## 22 NA NA
## 23 NA NA
## 24 NA NA
## 25 NA NA
## 26 NA NA
## 27 NA NA
## 28 NA NA
## 29 -0.396 0.710
## 30 NA NA
## 31 NA NA
## 32 NA NA
## 33 NA NA
## 34 NA NA
## 35 NA NA
## 36 NA NA
##
##
## Information available in the meta-analysis object includes:
## - meta_tables [ access using get_metatab() ]
## - escalc [ access using get_escalc() ]
# Write meta-analysis tables to a Word file called "Meta-analysis table.docx"
#metabulate(ma_obj, file = "Meta-analysis table.docx",
# output_format = "word", output_dir = wd$output)
# Create funnel and forest plots
ma_obj <- plot_funnel(ma_obj = ma_obj)
## Funnel plots have been added to 'ma_obj' - use get_plots() to retrieve them.
ma_obj <- plot_forest(ma_obj = ma_obj, ma_facetname = "MA")
## Forest plots have been added to 'ma_obj' - use get_plots() to retrieve them.
get_plots(ma_obj, plot_types = c("funnel", "forest"))
## List of meta-analysis plots
## ----------------------------------------
## To view plots, use the '$' operator to search this list object.
## For example, get_plots()$funnel
##
## Plots available in this list are: funnel, forest
get_plots(ma_obj)$funnel
## $`analysis id: 1`
## $`analysis id: 1`$barebones
##
## $`analysis id: 1`$individual_correction
## list()
##
## $`analysis id: 1`$artifact_distribution
## list()
##
##
## $`analysis id: 2`
## $`analysis id: 2`$barebones
##
## $`analysis id: 2`$individual_correction
## list()
##
## $`analysis id: 2`$artifact_distribution
## list()
##
##
## $`analysis id: 3`
## $`analysis id: 3`$barebones
##
## $`analysis id: 3`$individual_correction
## list()
##
## $`analysis id: 3`$artifact_distribution
## list()
##
##
## $`analysis id: 4`
## $`analysis id: 4`$barebones
##
## $`analysis id: 4`$individual_correction
## list()
##
## $`analysis id: 4`$artifact_distribution
## list()
##
##
## $`analysis id: 5`
## $`analysis id: 5`$barebones
##
## $`analysis id: 5`$individual_correction
## list()
##
## $`analysis id: 5`$artifact_distribution
## list()
##
##
## $`analysis id: 6`
## $`analysis id: 6`$barebones
##
## $`analysis id: 6`$individual_correction
## list()
##
## $`analysis id: 6`$artifact_distribution
## list()
##
##
## $`analysis id: 7`
## $`analysis id: 7`$barebones
##
## $`analysis id: 7`$individual_correction
## list()
##
## $`analysis id: 7`$artifact_distribution
## list()
##
##
## $`analysis id: 8`
## $`analysis id: 8`$barebones
##
## $`analysis id: 8`$individual_correction
## list()
##
## $`analysis id: 8`$artifact_distribution
## list()
##
##
## $`analysis id: 9`
## $`analysis id: 9`$barebones
##
## $`analysis id: 9`$individual_correction
## list()
##
## $`analysis id: 9`$artifact_distribution
## list()
##
##
## $`analysis id: 10`
## $`analysis id: 10`$barebones
##
## $`analysis id: 10`$individual_correction
## list()
##
## $`analysis id: 10`$artifact_distribution
## list()
##
##
## $`analysis id: 11`
## $`analysis id: 11`$barebones
##
## $`analysis id: 11`$individual_correction
## list()
##
## $`analysis id: 11`$artifact_distribution
## list()
##
##
## $`analysis id: 12`
## $`analysis id: 12`$barebones
##
## $`analysis id: 12`$individual_correction
## list()
##
## $`analysis id: 12`$artifact_distribution
## list()
##
##
## $`analysis id: 13`
## $`analysis id: 13`$barebones
##
## $`analysis id: 13`$individual_correction
## list()
##
## $`analysis id: 13`$artifact_distribution
## list()
##
##
## $`analysis id: 14`
## $`analysis id: 14`$barebones
##
## $`analysis id: 14`$individual_correction
## list()
##
## $`analysis id: 14`$artifact_distribution
## list()
##
##
## $`analysis id: 15`
## $`analysis id: 15`$barebones
##
## $`analysis id: 15`$individual_correction
## list()
##
## $`analysis id: 15`$artifact_distribution
## list()
##
##
## $`analysis id: 16`
## $`analysis id: 16`$barebones
##
## $`analysis id: 16`$individual_correction
## list()
##
## $`analysis id: 16`$artifact_distribution
## list()
##
##
## $`analysis id: 17`
## $`analysis id: 17`$barebones
##
## $`analysis id: 17`$individual_correction
## list()
##
## $`analysis id: 17`$artifact_distribution
## list()
##
##
## $`analysis id: 18`
## $`analysis id: 18`$barebones
##
## $`analysis id: 18`$individual_correction
## list()
##
## $`analysis id: 18`$artifact_distribution
## list()
##
##
## $`analysis id: 19`
## $`analysis id: 19`$barebones
##
## $`analysis id: 19`$individual_correction
## list()
##
## $`analysis id: 19`$artifact_distribution
## list()
##
##
## $`analysis id: 20`
## $`analysis id: 20`$barebones
##
## $`analysis id: 20`$individual_correction
## list()
##
## $`analysis id: 20`$artifact_distribution
## list()
##
##
## $`analysis id: 21`
## $`analysis id: 21`$barebones
##
## $`analysis id: 21`$individual_correction
## list()
##
## $`analysis id: 21`$artifact_distribution
## list()
##
##
## $`analysis id: 22`
## $`analysis id: 22`$barebones
##
## $`analysis id: 22`$individual_correction
## list()
##
## $`analysis id: 22`$artifact_distribution
## list()
##
##
## $`analysis id: 23`
## $`analysis id: 23`$barebones
##
## $`analysis id: 23`$individual_correction
## list()
##
## $`analysis id: 23`$artifact_distribution
## list()
##
##
## $`analysis id: 24`
## $`analysis id: 24`$barebones
##
## $`analysis id: 24`$individual_correction
## list()
##
## $`analysis id: 24`$artifact_distribution
## list()
##
##
## $`analysis id: 25`
## $`analysis id: 25`$barebones
##
## $`analysis id: 25`$individual_correction
## list()
##
## $`analysis id: 25`$artifact_distribution
## list()
##
##
## $`analysis id: 26`
## $`analysis id: 26`$barebones
##
## $`analysis id: 26`$individual_correction
## list()
##
## $`analysis id: 26`$artifact_distribution
## list()
##
##
## $`analysis id: 27`
## $`analysis id: 27`$barebones
##
## $`analysis id: 27`$individual_correction
## list()
##
## $`analysis id: 27`$artifact_distribution
## list()
##
##
## $`analysis id: 28`
## $`analysis id: 28`$barebones
##
## $`analysis id: 28`$individual_correction
## list()
##
## $`analysis id: 28`$artifact_distribution
## list()
##
##
## $`analysis id: 29`
## $`analysis id: 29`$barebones
##
## $`analysis id: 29`$individual_correction
## list()
##
## $`analysis id: 29`$artifact_distribution
## list()
##
##
## $`analysis id: 30`
## $`analysis id: 30`$barebones
##
## $`analysis id: 30`$individual_correction
## list()
##
## $`analysis id: 30`$artifact_distribution
## list()
##
##
## $`analysis id: 31`
## $`analysis id: 31`$barebones
##
## $`analysis id: 31`$individual_correction
## list()
##
## $`analysis id: 31`$artifact_distribution
## list()
##
##
## $`analysis id: 32`
## $`analysis id: 32`$barebones
##
## $`analysis id: 32`$individual_correction
## list()
##
## $`analysis id: 32`$artifact_distribution
## list()
##
##
## $`analysis id: 33`
## $`analysis id: 33`$barebones
##
## $`analysis id: 33`$individual_correction
## list()
##
## $`analysis id: 33`$artifact_distribution
## list()
##
##
## $`analysis id: 34`
## $`analysis id: 34`$barebones
##
## $`analysis id: 34`$individual_correction
## list()
##
## $`analysis id: 34`$artifact_distribution
## list()
##
##
## $`analysis id: 35`
## $`analysis id: 35`$barebones
##
## $`analysis id: 35`$individual_correction
## list()
##
## $`analysis id: 35`$artifact_distribution
## list()
##
##
## $`analysis id: 36`
## $`analysis id: 36`$barebones
##
## $`analysis id: 36`$individual_correction
## list()
##
## $`analysis id: 36`$artifact_distribution
## list()
get_plots(ma_obj)$forest
## $`analysis id: 1`
## $`analysis id: 1`$moderated
## $`analysis id: 1`$moderated$barebones
## Warning: Removed 2 rows containing missing values (`geom_point()`).
## Warning: Removed 13 rows containing missing values (`geom_errorbarh()`).
##
## $`analysis id: 1`$moderated$individual_correction
## NULL
##
##
## $`analysis id: 1`$unmoderated
## $`analysis id: 1`$unmoderated$barebones
## Warning: Removed 1 rows containing missing values (`geom_point()`).
##
## $`analysis id: 1`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 2`
## $`analysis id: 2`$moderated
## NULL
##
## $`analysis id: 2`$unmoderated
## $`analysis id: 2`$unmoderated$barebones
##
## $`analysis id: 2`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 3`
## $`analysis id: 3`$moderated
## NULL
##
## $`analysis id: 3`$unmoderated
## $`analysis id: 3`$unmoderated$barebones
## Warning: Removed 2 rows containing missing values (`geom_point()`).
##
## $`analysis id: 3`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 4`
## $`analysis id: 4`$moderated
## NULL
##
## $`analysis id: 4`$unmoderated
## $`analysis id: 4`$unmoderated$barebones
##
## $`analysis id: 4`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 5`
## $`analysis id: 5`$moderated
## NULL
##
## $`analysis id: 5`$unmoderated
## $`analysis id: 5`$unmoderated$barebones
##
## $`analysis id: 5`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 6`
## $`analysis id: 6`$moderated
## NULL
##
## $`analysis id: 6`$unmoderated
## $`analysis id: 6`$unmoderated$barebones
##
## $`analysis id: 6`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 7`
## $`analysis id: 7`$moderated
## NULL
##
## $`analysis id: 7`$unmoderated
## $`analysis id: 7`$unmoderated$barebones
##
## $`analysis id: 7`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 8`
## $`analysis id: 8`$moderated
## NULL
##
## $`analysis id: 8`$unmoderated
## $`analysis id: 8`$unmoderated$barebones
##
## $`analysis id: 8`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 9`
## $`analysis id: 9`$moderated
## NULL
##
## $`analysis id: 9`$unmoderated
## $`analysis id: 9`$unmoderated$barebones
##
## $`analysis id: 9`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 10`
## $`analysis id: 10`$moderated
## NULL
##
## $`analysis id: 10`$unmoderated
## $`analysis id: 10`$unmoderated$barebones
##
## $`analysis id: 10`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 11`
## $`analysis id: 11`$moderated
## NULL
##
## $`analysis id: 11`$unmoderated
## $`analysis id: 11`$unmoderated$barebones
##
## $`analysis id: 11`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 12`
## $`analysis id: 12`$moderated
## NULL
##
## $`analysis id: 12`$unmoderated
## $`analysis id: 12`$unmoderated$barebones
##
## $`analysis id: 12`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 13`
## $`analysis id: 13`$moderated
## NULL
##
## $`analysis id: 13`$unmoderated
## $`analysis id: 13`$unmoderated$barebones
##
## $`analysis id: 13`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 14`
## $`analysis id: 14`$moderated
## NULL
##
## $`analysis id: 14`$unmoderated
## $`analysis id: 14`$unmoderated$barebones
##
## $`analysis id: 14`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 15`
## $`analysis id: 15`$moderated
## NULL
##
## $`analysis id: 15`$unmoderated
## $`analysis id: 15`$unmoderated$barebones
##
## $`analysis id: 15`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 16`
## $`analysis id: 16`$moderated
## NULL
##
## $`analysis id: 16`$unmoderated
## $`analysis id: 16`$unmoderated$barebones
##
## $`analysis id: 16`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 17`
## $`analysis id: 17`$moderated
## NULL
##
## $`analysis id: 17`$unmoderated
## $`analysis id: 17`$unmoderated$barebones
##
## $`analysis id: 17`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 18`
## $`analysis id: 18`$moderated
## NULL
##
## $`analysis id: 18`$unmoderated
## $`analysis id: 18`$unmoderated$barebones
##
## $`analysis id: 18`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 19`
## $`analysis id: 19`$moderated
## NULL
##
## $`analysis id: 19`$unmoderated
## $`analysis id: 19`$unmoderated$barebones
##
## $`analysis id: 19`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 20`
## $`analysis id: 20`$moderated
## NULL
##
## $`analysis id: 20`$unmoderated
## $`analysis id: 20`$unmoderated$barebones
##
## $`analysis id: 20`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 21`
## $`analysis id: 21`$moderated
## NULL
##
## $`analysis id: 21`$unmoderated
## $`analysis id: 21`$unmoderated$barebones
##
## $`analysis id: 21`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 22`
## $`analysis id: 22`$moderated
## NULL
##
## $`analysis id: 22`$unmoderated
## $`analysis id: 22`$unmoderated$barebones
##
## $`analysis id: 22`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 23`
## $`analysis id: 23`$moderated
## NULL
##
## $`analysis id: 23`$unmoderated
## $`analysis id: 23`$unmoderated$barebones
##
## $`analysis id: 23`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 24`
## $`analysis id: 24`$moderated
## NULL
##
## $`analysis id: 24`$unmoderated
## $`analysis id: 24`$unmoderated$barebones
##
## $`analysis id: 24`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 25`
## $`analysis id: 25`$moderated
## NULL
##
## $`analysis id: 25`$unmoderated
## $`analysis id: 25`$unmoderated$barebones
##
## $`analysis id: 25`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 26`
## $`analysis id: 26`$moderated
## NULL
##
## $`analysis id: 26`$unmoderated
## $`analysis id: 26`$unmoderated$barebones
##
## $`analysis id: 26`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 27`
## $`analysis id: 27`$moderated
## NULL
##
## $`analysis id: 27`$unmoderated
## $`analysis id: 27`$unmoderated$barebones
##
## $`analysis id: 27`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 28`
## $`analysis id: 28`$moderated
## NULL
##
## $`analysis id: 28`$unmoderated
## $`analysis id: 28`$unmoderated$barebones
##
## $`analysis id: 28`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 29`
## $`analysis id: 29`$moderated
## NULL
##
## $`analysis id: 29`$unmoderated
## $`analysis id: 29`$unmoderated$barebones
##
## $`analysis id: 29`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 30`
## $`analysis id: 30`$moderated
## NULL
##
## $`analysis id: 30`$unmoderated
## $`analysis id: 30`$unmoderated$barebones
##
## $`analysis id: 30`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 31`
## $`analysis id: 31`$moderated
## NULL
##
## $`analysis id: 31`$unmoderated
## $`analysis id: 31`$unmoderated$barebones
##
## $`analysis id: 31`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 32`
## $`analysis id: 32`$moderated
## NULL
##
## $`analysis id: 32`$unmoderated
## $`analysis id: 32`$unmoderated$barebones
##
## $`analysis id: 32`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 33`
## $`analysis id: 33`$moderated
## NULL
##
## $`analysis id: 33`$unmoderated
## $`analysis id: 33`$unmoderated$barebones
##
## $`analysis id: 33`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 34`
## $`analysis id: 34`$moderated
## NULL
##
## $`analysis id: 34`$unmoderated
## $`analysis id: 34`$unmoderated$barebones
##
## $`analysis id: 34`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 35`
## $`analysis id: 35`$moderated
## NULL
##
## $`analysis id: 35`$unmoderated
## $`analysis id: 35`$unmoderated$barebones
##
## $`analysis id: 35`$unmoderated$individual_correction
## NULL
##
##
##
## $`analysis id: 36`
## $`analysis id: 36`$moderated
## NULL
##
## $`analysis id: 36`$unmoderated
## $`analysis id: 36`$unmoderated$barebones
##
## $`analysis id: 36`$unmoderated$individual_correction
## NULL
tab_ma<-as.data.frame(ma_obj)
dotplot_mat <- matrix(nrow = nrow(tab_ma), ncol = 5)
colnames(dotplot_mat)<-c( "Reference", "n", "r", "CI_LL_95", "CI_UL_95" )
for(i in 1:nrow(tab_ma)) {
dotplot_mat[,1] <- levels(tab_ma$Reference[i])
dotplot_mat[i,2] <- tab_ma$meta_tables[[i]]$barebones$N
dotplot_mat[i,3] <- tab_ma$meta_tables[[i]]$barebones$mean_r
dotplot_mat[i,4] <-tab_ma$meta_tables[[i]]$barebones$CI_LL_95
dotplot_mat[i,5] <-tab_ma$meta_tables[[i]]$barebones$CI_UL_95
}
dotplot_mat <- as.data.frame(dotplot_mat)
dotplot_mat$Reference <- as.factor(dotplot_mat$Reference)
dotplot_mat$n <- as.numeric(dotplot_mat$n)
dotplot_mat$r <- as.numeric(dotplot_mat$r)
dotplot_mat$CI_LL_95 <- as.numeric(dotplot_mat$CI_LL_95)
dotplot_mat$CI_UL_95 <- as.numeric(dotplot_mat$CI_UL_95)
# get libraries we need for plotting and stacking the plots
library(ggplot2)
library(grid)
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
finalplot <- ggplot(dotplot_mat, aes(x = Reference, y = r)) +
geom_crossbar(aes(ymin = CI_LL_95, ymax = CI_UL_95), fill = "aquamarine1",
color = "aquamarine1", width = 0.1) +
geom_hline(yintercept = 0, color="blue") +
geom_text(aes(x= Reference, y=-2.5,
label=paste("n=",
n, sep="")),
size = 2.5, hjust="inward") +
geom_point() +
ylab("r (sesquiterpenoids/monoterpenoids versus latitude)")+
coord_flip() +
theme_minimal()
finalplot
mat2$r
## [1] -0.14529041 -0.93212758 -0.10616538 0.04165195 0.36233420 -0.75141702
## [7] -0.20951496 0.73591433 0.61432931 -0.67075283 0.38834674 -0.04745231
## [13] -0.60697581 -0.18755349 0.24692668 -0.47717145 -0.24957821 -0.33927643
## [19] -0.54222963 0.61595985 -0.05269347 0.27746881 0.12962760 -0.45698483
## [25] 0.48678430 -0.86210602 0.83148407 0.59181637 0.59431142 0.03036140
## [31] -0.32264939 -0.32354424 -0.31276913 -0.22759798 0.03848951 -0.48515982
## [37] -0.55795016 -0.60918429 -0.29470972
Res <- metacor(studlab=paste(Reference, Species, sep=" "),as.numeric(r),as.numeric(n), data=mat2, sm="cor", backtransf=FALSE)
Res
## Number of studies combined: k = 39
## Number of observations: o = 689
##
## COR 95%-CI z p-value
## Common effect model -0.2142 [-0.2696; -0.1589] -7.58 < 0.0001
## Random effects model -0.1024 [-0.2617; 0.0569] -1.26 0.2076
##
## Quantifying heterogeneity:
## tau^2 = 0.1970 [0.1063; 0.3210]; tau = 0.4439 [0.3261; 0.5666]
## I^2 = 90.0% [87.3%; 92.1%]; H = 3.16 [2.80; 3.56]
##
## Test of heterogeneity:
## Q d.f. p-value
## 378.86 38 < 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - Restricted maximum-likelihood estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Untransformed correlations
forest(Res)
pdf("Lat_forest_ALL.pdf" , height=20,width=10)
par(oma = c(1.5, 1, 1.5, 1) + 0.1)
print(forest(Res, comb.fixed=F))
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <c6>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <92>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <c6>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <92>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <c6>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <92>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <c6>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <92>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <c6>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <92>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <c6>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Rajčević_2022 Juniperus_communis' in 'mbcsToSbcs': dot
## substituted for <92>
## $xlim
## [1] -1.318215 1.318215
##
## $addrows.below.overall
## [1] 0
##
## $colgap
## [1] 2mm
##
## $colgap.left
## [1] 2mm
##
## $colgap.right
## [1] 2mm
##
## $colgap.studlab
## [1] 2mm
##
## $colgap.forest
## [1] 2mm
##
## $colgap.forest.left
## [1] 2mm
##
## $colgap.forest.right
## [1] 2mm
##
## $studlab
## [1] "Bader_2022 Achillea_ligustica"
## [2] "berramdane_2018 Achilea_santolina"
## [3] "Douglas_2004 Leptospermum_scoparium"
## [4] "Elechosa_2017 Aloysia_citriodora"
## [5] "ElHadj_Ali_2010 Thymus_algeriensis"
## [6] "frizzo_2008 Baccharis_dracunculifolia"
## [7] "Goren_2011 Stachys_cretica"
## [8] "Hung_2021 Lantana_camara"
## [9] "Jaouadi_2023 Thymus_algeriensis"
## [10] "Kamila_2022 Hypericum_gaitii"
## [11] "Karimi_2020A Ferula_assa_foetida"
## [12] "Karimi_2020B Zataria_multiflora"
## [13] "Kazemeini_2020 Rhabdosciadium_aucheri"
## [14] "kosakouska_2015 Tilia_cordata"
## [15] "Lei_2010 Platycladus_orientalis"
## [16] "Lis_2003 Conyza_canadensis"
## [17] "Marcial_2016 Lippia_integrifolia "
## [18] "Martz_2009 Juniperus_communis"
## [19] "Minteguiaga_2014 Baccharis_trimera"
## [20] "Mkaddem_2022 Marrubium_vulgare"
## [21] "Morshedloo_2018 Rhus_coriaria"
## [22] "Ozcan&Chalchat_2005 Laurus_nobilis"
## [23] "Rahimmalek_2013 Myrtus_communis"
## [24] "Rajcevic_2018 Juniperus_phoenicea"
## [25] "Rajčević_2022 Juniperus_communis"
## [26] "Rakotobe_2008 Cedrelopsis_grevei"
## [27] "Retta_2008 Achyrocline_flaccida"
## [28] "Romanenko_2022 Abies_sibirica"
## [29] "Romanenko_2022 Larix_sibirica"
## [30] "Romanenko_2022 Picea_obovata"
## [31] "Romanenko_2022 Pinus_sibirica"
## [32] "Romanenko_2022 Pinus_sylvestris"
## [33] "Segal_1987 Artemisia_herba_alba"
## [34] "Singh_2020 Curcuma_caesia"
## [35] "Ustun_2006 Pinus_sylvestris"
## [36] "Van_Baren_2014 Minthostachys_mollis"
## [37] "Viljoen_2006 Mentha_longifolia"
## [38] "Zouari_2012 Thymus_algeriensis"
## [39] "Zouari_2014 Artemisia_herba_alba"
##
## $TE.format
## [1] "" "" "" "-0.15" "-0.93" "-0.11" "0.04" "0.36" "-0.75"
## [10] "-0.21" "0.74" "0.61" "-0.67" "0.39" "-0.05" "-0.61" "-0.19" "0.25"
## [19] "-0.48" "-0.25" "-0.34" "-0.54" "0.62" "-0.05" "0.28" "0.13" "-0.46"
## [28] "0.49" "-0.86" "0.83" "0.59" "0.59" "0.03" "-0.32" "-0.32" "-0.31"
## [37] "-0.23" "0.04" "-0.49" "-0.56" "-0.61" "-0.29"
##
## $seTE.format
## [1] "" "" "" "0.2527" "0.0757" "0.1066" "0.1687" "0.2409"
## [9] "0.1539" "0.4781" "0.2647" "0.1727" "0.2246" "0.2831" "0.2767" "0.2578"
## [17] "0.2213" "0.2425" "0.3153" "0.1741" "0.0798" "0.3157" "0.3583" "0.2766"
## [25] "0.4128" "0.2256" "0.3230" "0.1851" "0.1284" "0.0976" "0.2166" "0.1950"
## [33] "0.3330" "0.3386" "0.2984" "0.3410" "0.3161" "0.2578" "0.1004" "0.2603"
## [41] "0.1624" "0.3728"
##
## $effect.format
## [1] "-0.21" "-0.10" "" "-0.15" "-0.93" "-0.11" "0.04" "0.36" "-0.75"
## [10] "-0.21" "0.74" "0.61" "-0.67" "0.39" "-0.05" "-0.61" "-0.19" "0.25"
## [19] "-0.48" "-0.25" "-0.34" "-0.54" "0.62" "-0.05" "0.28" "0.13" "-0.46"
## [28] "0.49" "-0.86" "0.83" "0.59" "0.59" "0.03" "-0.32" "-0.32" "-0.31"
## [37] "-0.23" "0.04" "-0.49" "-0.56" "-0.61" "-0.29"
##
## $ci.format
## [1] "[-0.27; -0.16]" "[-0.26; 0.06]" "" "[-0.64; 0.35]"
## [5] "[-1.08; -0.78]" "[-0.32; 0.10]" "[-0.29; 0.37]" "[-0.11; 0.83]"
## [9] "[-1.05; -0.45]" "[-1.15; 0.73]" "[ 0.22; 1.25]" "[ 0.28; 0.95]"
## [13] "[-1.11; -0.23]" "[-0.17; 0.94]" "[-0.59; 0.49]" "[-1.11; -0.10]"
## [17] "[-0.62; 0.25]" "[-0.23; 0.72]" "[-1.10; 0.14]" "[-0.59; 0.09]"
## [21] "[-0.50; -0.18]" "[-1.16; 0.08]" "[-0.09; 1.32]" "[-0.59; 0.49]"
## [25] "[-0.53; 1.09]" "[-0.31; 0.57]" "[-1.09; 0.18]" "[ 0.12; 0.85]"
## [29] "[-1.11; -0.61]" "[ 0.64; 1.02]" "[ 0.17; 1.02]" "[ 0.21; 0.98]"
## [33] "[-0.62; 0.68]" "[-0.99; 0.34]" "[-0.91; 0.26]" "[-0.98; 0.36]"
## [37] "[-0.85; 0.39]" "[-0.47; 0.54]" "[-0.68; -0.29]" "[-1.07; -0.05]"
## [41] "[-0.93; -0.29]" "[-1.03; 0.44]"
dev.off()
## quartz_off_screen
## 2
pdf("Lat_funnel_ALL2.pdf" ,paper="a4")
par(oma = c(1.5, 1, 1.5, 1) + 0.1)
funnel(Res, comb.fixed=FALSE)
dev.off()
## quartz_off_screen
## 2
#### Egger??s test #####
metabias(Res,method.bias="linreg",plotit=T, k.min=5)
## Linear regression test of funnel plot asymmetry
##
## Test result: t = 1.58, df = 37, p-value = 0.1226
##
## Sample estimates:
## bias se.bias intercept se.intercept
## 1.6631 1.0526 -0.4731 0.1857
##
## Details:
## - multiplicative residual heterogeneity variance (tau^2 = 9.5921)
## - predictor: standard error
## - weight: inverse variance
## - reference: Egger et al. (1997), BMJ
####Subgroup analysis ######
mat2$Status
## [1] wild wild wild wild wild wild wild wild wild wild wild wild wild wild wild
## [16] wild wild wild wild wild wild wild wild wild wild wild wild wild wild wild
## [31] wild wild wild wild wild wild wild wild wild
## Levels: wild
m<-metacor(studlab=as.factor(Family), as.numeric(r), as.numeric(n), sm ="zcor", backtransf=FALSE, byvar=Status, data =mat2)
## Warning: Use argument 'subgroup' instead of 'byvar' (deprecated).
m
## Number of studies combined: k = 39
## Number of observations: o = 689
##
## ZCOR 95%-CI z p-value
## Common effect model -0.1474 [-0.2294; -0.0655] -3.53 0.0004
## Random effects model -0.0812 [-0.2357; 0.0732] -1.03 0.3025
##
## Quantifying heterogeneity:
## tau^2 = 0.1129 [0.0419; 0.3206]; tau = 0.3360 [0.2046; 0.5662]
## I^2 = 56.4% [37.7%; 69.6%]; H = 1.52 [1.27; 1.81]
##
## Test of heterogeneity:
## Q d.f. p-value
## 87.25 38 < 0.0001
##
## Results for subgroups (common effect model):
## k ZCOR 95%-CI Q I^2
## Status = wild 39 -0.1474 [-0.2294; -0.0655] 87.25 56.4%
##
## Test for subgroup differences (common effect model):
## Q d.f. p-value
## Between groups 0.00 0 --
## Within groups 87.25 38 < 0.0001
##
## Results for subgroups (random effects model):
## k ZCOR 95%-CI tau^2 tau
## Status = wild 39 -0.0812 [-0.2357; 0.0732] 0.1129 0.3360
##
## Test for subgroup differences (random effects model):
## Q d.f. p-value
## Between groups 0.00 0 --
##
## Details on meta-analytical method:
## - Inverse variance method
## - Restricted maximum-likelihood estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Fisher's z transformation of correlations
pdf("Lat_forest_Sub2.pdf" , paper="a4")# forest plot
par(oma = c(1.5, 1, 1.5, 1) + 0.1)
forest(m, comb.fixed=FALSE)