Load libraries

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

Set working directory

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/"

Import dataset

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

Data preparation

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

Stats

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

Meta-analysis

###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

dotplot

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

metafor Combined with the direct correlation coefficients (r)

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

Funnel plot for publication bias

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)