Last updated: 2023-04-27
Checks: 7 0
Knit directory:
Density_and_sexual_selection_2023/
This reproducible R Markdown analysis was created with workflowr (version 1.7.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20210613)
was run prior to running
the code in the R Markdown file. Setting a seed ensures that any results
that rely on randomness, e.g. subsampling or permutations, are
reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.
The results in this page were generated with repository version e4a0f09. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.
Note that you need to be careful to ensure that all relevant files for
the analysis have been committed to Git prior to generating the results
(you can use wflow_publish
or
wflow_git_commit
). workflowr only checks the R Markdown
file, but you know if there are other scripts or data files that it
depends on. Below is the status of the Git repository when the results
were generated:
Ignored files:
Ignored: .Rhistory
Ignored: .Rproj.user/
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
These are the previous versions of the repository in which changes were
made to the R Markdown (analysis/index5.Rmd
) and HTML
(docs/index5.html
) files. If you’ve configured a remote Git
repository (see ?wflow_git_remote
), click on the hyperlinks
in the table below to view the files as they were in that past version.
File | Version | Author | Date | Message |
---|---|---|---|---|
Rmd | e4a0f09 | LennartWinkler | 2023-04-27 | wflow_publish(all = T) |
html | 37ab720 | LennartWinkler | 2023-04-22 | Build site. |
Rmd | 5b85dd9 | LennartWinkler | 2023-04-22 | wflow_publish(all = T) |
html | a88c4c5 | LennartWinkler | 2023-04-21 | Build site. |
Rmd | 2dd68d0 | LennartWinkler | 2023-04-21 | wflow_publish(all = T) |
html | 2dd68d0 | LennartWinkler | 2023-04-21 | wflow_publish(all = T) |
Rmd | 73986d2 | LennartWinkler | 2023-04-21 | update |
html | b81114e | LennartWinkler | 2023-04-20 | Build site. |
Rmd | fe8c52c | LennartWinkler | 2023-04-20 | wflow_publish(all = T) |
html | fe8c52c | LennartWinkler | 2023-04-20 | wflow_publish(all = T) |
html | 55df7ff | LennartWinkler | 2023-04-12 | Build site. |
html | b0a3f15 | LennartWinkler | 2023-04-12 | Build site. |
Rmd | c8bd540 | Lennart Winkler | 2023-04-12 | set up |
html | c8bd540 | Lennart Winkler | 2023-04-12 | set up |
html | 899398a | Lennart Winkler | 2022-08-14 | Build site. |
Rmd | d0d039c | Lennart Winkler | 2022-08-14 | wflow_publish(all = T) |
Rmd | f54f022 | LennartWinkler | 2022-08-13 | wflow_publish(republish = TRUE, all = T) |
html | f54f022 | LennartWinkler | 2022-08-13 | wflow_publish(republish = TRUE, all = T) |
Rmd | f89f7c1 | LennartWinkler | 2022-08-10 | Build site. |
html | f89f7c1 | LennartWinkler | 2022-08-10 | Build site. |
Supplementary material reporting R code for the manuscript ‘Population density affects sexual selection in an insect model’.
We partitioned the variance in reproductive success in males and females. Specifically, we partitioned the variance in reproductive success (number of offspring; mRS) in males into: the variance in male mating success (number of mating partners; MS), paternity share (proportion of offspring of the focal with each mating partner; PS) and in the fecundity of the partner (number of offspring produced by mating partners; pFec) as
var(mRS)=var(MS)+var(PS)+ var(pFec)+2 cov(MS,PS)+2 cov(MS,pFec)+2 cov(PS,pFec).
In addition, we partitioned the variance in paternity share into the variance in insemination success (proportion of mating partners that have been inseminated successfully in terms of at least one shared offspring; IS) and fertilization success (proportion of offspring sired from each successfully inseminated mating partner; FS). Hence, while PS is an estimate for the total opportunity for post-copulatory sexual selection, IS gives the opportunity for sexual selection on the ability of males to inseminate females and FS the opportunity for sexual selection on males to outcompete rivals in sperm competition.
The variance in reproductive success of females (number of offspring; fRS) was partitioned into the variance in mating success (number of partners; MS) and female fecundity (number of offspring produced; Fec) as
var(fRS)=var(MS)+ var(Fec)+2 cov(MS,Fec).
For the variance decomposition, data were relativized by dividing each trait value by the corresponding mean trait value of that treatment and sex. Furthermore, we used bootstrapping to estimate the different variance components and two-sided permutation tests to compare them between treatments.
Before we started the analyses, we loaded all necessary packages and data.
rm(list = ls()) # Clear work environment
# Load R-packages ####
=cbind('ggeffects','ggplot2','gridExtra','lme4','lmerTest','readr','dplyr','EnvStats','cowplot','gridGraphics','car','RColorBrewer','boot','data.table','base','ICC','knitr')
list_of_packageslapply(list_of_packages, require, character.only = TRUE)
# Load data set ####
=read_delim("./data/Data_Winkler_et_al_2023_Denstiy.csv",";", escape_double = FALSE, trim_ws = TRUE)
D_data
# Set factors and levels for factors
$Week=as.factor(D_data$Week)
D_data$Sex=as.factor(D_data$Sex)
D_data$Gr_size=as.factor(D_data$Gr_size)
D_data$Gr_size <- factor(D_data$Gr_size, levels=c("SG","LG"))
D_data$Arena=as.factor(D_data$Arena)
D_data
## Subset data set ####
### Data according to denstiy ####
.26=D_data[D_data$Treatment=='D = 0.26',]
D_data_0.52=D_data[D_data$Treatment=='D = 0.52',]
D_data_0.67=D_data[D_data$Treatment=='D = 0.67',]
D_data_0.33=D_data[D_data$Treatment=='D = 1.33',]
D_data_1
### Subset data by sex ####
=D_data[D_data$Sex=='M',]
D_data_m=D_data[D_data$Sex=='F',]
D_data_f
### Calculate data relativized within treatment and sex ####
# Small group + large Area
.26=D_data[D_data$Treatment=='D = 0.26',]
D_data_0
.26$rel_m_RS=NA
D_data_0.26$rel_m_prop_RS=NA
D_data_0.26$rel_m_cMS=NA
D_data_0.26$rel_m_InSuc=NA
D_data_0.26$rel_m_feSuc=NA
D_data_0.26$rel_m_pFec=NA
D_data_0.26$rel_m_PS=NA
D_data_0.26$rel_m_pFec_compl=NA
D_data_0
.26$rel_f_RS=NA
D_data_0.26$rel_f_prop_RS=NA
D_data_0.26$rel_f_cMS=NA
D_data_0.26$rel_f_fec_pMate=NA
D_data_0
.26$rel_m_RS=D_data_0.26$m_RS/mean(D_data_0.26$m_RS,na.rm=T)
D_data_0.26$rel_m_prop_RS=D_data_0.26$m_prop_RS/mean(D_data_0.26$m_prop_RS,na.rm=T)
D_data_0.26$rel_m_cMS=D_data_0.26$m_cMS/mean(D_data_0.26$m_cMS,na.rm=T)
D_data_0.26$rel_m_InSuc=D_data_0.26$m_InSuc/mean(D_data_0.26$m_InSuc,na.rm=T)
D_data_0.26$rel_m_feSuc=D_data_0.26$m_feSuc/mean(D_data_0.26$m_feSuc,na.rm=T)
D_data_0.26$rel_m_pFec=D_data_0.26$m_pFec/mean(D_data_0.26$m_pFec,na.rm=T)
D_data_0.26$rel_m_PS=D_data_0.26$m_PS/mean(D_data_0.26$m_PS,na.rm=T)
D_data_0.26$rel_m_pFec_compl=D_data_0.26$m_pFec_compl/mean(D_data_0.26$m_pFec_compl,na.rm=T)
D_data_0
.26$rel_f_RS=D_data_0.26$f_RS/mean(D_data_0.26$f_RS,na.rm=T)
D_data_0.26$rel_f_prop_RS=D_data_0.26$f_prop_RS/mean(D_data_0.26$f_prop_RS,na.rm=T)
D_data_0.26$rel_f_cMS=D_data_0.26$f_cMS/mean(D_data_0.26$f_cMS,na.rm=T)
D_data_0.26$rel_f_fec_pMate=D_data_0.26$f_fec_pMate/mean(D_data_0.26$f_fec_pMate,na.rm=T)
D_data_0
# Large group + large Area
.52=D_data[D_data$Treatment=='D = 0.52',]
D_data_0#Relativize data
.52$rel_m_RS=NA
D_data_0.52$rel_m_prop_RS=NA
D_data_0.52$rel_m_cMS=NA
D_data_0.52$rel_m_InSuc=NA
D_data_0.52$rel_m_feSuc=NA
D_data_0.52$rel_m_pFec=NA
D_data_0.52$rel_m_PS=NA
D_data_0.52$rel_m_pFec_compl=NA
D_data_0
.52$rel_f_RS=NA
D_data_0.52$rel_f_prop_RS=NA
D_data_0.52$rel_f_cMS=NA
D_data_0.52$rel_f_fec_pMate=NA
D_data_0
.52$rel_m_RS=D_data_0.52$m_RS/mean(D_data_0.52$m_RS,na.rm=T)
D_data_0.52$rel_m_prop_RS=D_data_0.52$m_prop_RS/mean(D_data_0.52$m_prop_RS,na.rm=T)
D_data_0.52$rel_m_cMS=D_data_0.52$m_cMS/mean(D_data_0.52$m_cMS,na.rm=T)
D_data_0.52$rel_m_InSuc=D_data_0.52$m_InSuc/mean(D_data_0.52$m_InSuc,na.rm=T)
D_data_0.52$rel_m_feSuc=D_data_0.52$m_feSuc/mean(D_data_0.52$m_feSuc,na.rm=T)
D_data_0.52$rel_m_pFec=D_data_0.52$m_pFec/mean(D_data_0.52$m_pFec,na.rm=T)
D_data_0.52$rel_m_PS=D_data_0.52$m_PS/mean(D_data_0.52$m_PS,na.rm=T)
D_data_0.52$rel_m_pFec_compl=D_data_0.52$m_pFec_compl/mean(D_data_0.52$m_pFec_compl,na.rm=T)
D_data_0
.52$rel_f_RS=D_data_0.52$f_RS/mean(D_data_0.52$f_RS,na.rm=T)
D_data_0.52$rel_f_prop_RS=D_data_0.52$f_prop_RS/mean(D_data_0.52$f_prop_RS,na.rm=T)
D_data_0.52$rel_f_cMS=D_data_0.52$f_cMS/mean(D_data_0.52$f_cMS,na.rm=T)
D_data_0.52$rel_f_fec_pMate=D_data_0.52$f_fec_pMate/mean(D_data_0.52$f_fec_pMate,na.rm=T)
D_data_0
# Small group + small Area
.67=D_data[D_data$Treatment=='D = 0.67',]
D_data_0#Relativize data
.67$rel_m_RS=NA
D_data_0.67$rel_m_prop_RS=NA
D_data_0.67$rel_m_cMS=NA
D_data_0.67$rel_m_InSuc=NA
D_data_0.67$rel_m_feSuc=NA
D_data_0.67$rel_m_pFec=NA
D_data_0.67$rel_m_PS=NA
D_data_0.67$rel_m_pFec_compl=NA
D_data_0
.67$rel_f_RS=NA
D_data_0.67$rel_f_prop_RS=NA
D_data_0.67$rel_f_cMS=NA
D_data_0.67$rel_f_fec_pMate=NA
D_data_0
.67$rel_m_RS=D_data_0.67$m_RS/mean(D_data_0.67$m_RS,na.rm=T)
D_data_0.67$rel_m_prop_RS=D_data_0.67$m_prop_RS/mean(D_data_0.67$m_prop_RS,na.rm=T)
D_data_0.67$rel_m_cMS=D_data_0.67$m_cMS/mean(D_data_0.67$m_cMS,na.rm=T)
D_data_0.67$rel_m_InSuc=D_data_0.67$m_InSuc/mean(D_data_0.67$m_InSuc,na.rm=T)
D_data_0.67$rel_m_feSuc=D_data_0.67$m_feSuc/mean(D_data_0.67$m_feSuc,na.rm=T)
D_data_0.67$rel_m_pFec=D_data_0.67$m_pFec/mean(D_data_0.67$m_pFec,na.rm=T)
D_data_0.67$rel_m_PS=D_data_0.67$m_PS/mean(D_data_0.67$m_PS,na.rm=T)
D_data_0.67$rel_m_pFec_compl=D_data_0.67$m_pFec_compl/mean(D_data_0.67$m_pFec_compl,na.rm=T)
D_data_0
.67$rel_f_RS=D_data_0.67$f_RS/mean(D_data_0.67$f_RS,na.rm=T)
D_data_0.67$rel_f_prop_RS=D_data_0.67$f_prop_RS/mean(D_data_0.67$f_prop_RS,na.rm=T)
D_data_0.67$rel_f_cMS=D_data_0.67$f_cMS/mean(D_data_0.67$f_cMS,na.rm=T)
D_data_0.67$rel_f_fec_pMate=D_data_0.67$f_fec_pMate/mean(D_data_0.67$f_fec_pMate,na.rm=T)
D_data_0
# Large group + small Area
.33=D_data[D_data$Treatment=='D = 1.33',]
D_data_1#Relativize data
.33$rel_m_RS=NA
D_data_1.33$rel_m_prop_RS=NA
D_data_1.33$rel_m_cMS=NA
D_data_1.33$rel_m_InSuc=NA
D_data_1.33$rel_m_feSuc=NA
D_data_1.33$rel_m_pFec=NA
D_data_1.33$rel_m_PS=NA
D_data_1.33$rel_m_pFec_compl=NA
D_data_1
.33$rel_f_RS=NA
D_data_1.33$rel_f_prop_RS=NA
D_data_1.33$rel_f_cMS=NA
D_data_1.33$rel_f_fec_pMate=NA
D_data_1
.33$rel_m_RS=D_data_1.33$m_RS/mean(D_data_1.33$m_RS,na.rm=T)
D_data_1.33$rel_m_prop_RS=D_data_1.33$m_prop_RS/mean(D_data_1.33$m_prop_RS,na.rm=T)
D_data_1.33$rel_m_cMS=D_data_1.33$m_cMS/mean(D_data_1.33$m_cMS,na.rm=T)
D_data_1.33$rel_m_InSuc=D_data_1.33$m_InSuc/mean(D_data_1.33$m_InSuc,na.rm=T)
D_data_1.33$rel_m_feSuc=D_data_1.33$m_feSuc/mean(D_data_1.33$m_feSuc,na.rm=T)
D_data_1.33$rel_m_pFec=D_data_1.33$m_pFec/mean(D_data_1.33$m_pFec,na.rm=T)
D_data_1.33$rel_m_PS=D_data_1.33$m_PS/mean(D_data_1.33$m_PS,na.rm=T)
D_data_1.33$rel_m_pFec_compl=D_data_1.33$m_pFec_compl/mean(D_data_1.33$m_pFec_compl,na.rm=T)
D_data_1
.33$rel_f_RS=D_data_1.33$f_RS/mean(D_data_1.33$f_RS,na.rm=T)
D_data_1.33$rel_f_prop_RS=D_data_1.33$f_prop_RS/mean(D_data_1.33$f_prop_RS,na.rm=T)
D_data_1.33$rel_f_cMS=D_data_1.33$f_cMS/mean(D_data_1.33$f_cMS,na.rm=T)
D_data_1.33$rel_f_fec_pMate=D_data_1.33$f_fec_pMate/mean(D_data_1.33$f_fec_pMate,na.rm=T)
D_data_1
### Reduce treatments to arena and population size ####
# Arena size
=rbind(D_data_0.26,D_data_0.52)
D_data_Large_arena=rbind(D_data_0.67,D_data_1.33)
D_data_Small_arena
# Population size
=rbind(D_data_0.26,D_data_0.67)
D_data_Small_pop=rbind(D_data_0.52,D_data_1.33)
D_data_Large_pop
## Set figure schemes ####
# Set color-sets for figures
=brewer.pal(4, 'Dark2')
colpal=c("#b2182b","#2166AC")
colpal2=brewer.pal(4, 'Paired')
colpal3
# Set theme for ggplot2 figures
=theme(panel.border = element_blank(),
fig_themeplot.margin = margin(0,2.2,0,0.2,"cm"),
plot.title = element_text(hjust = 0.5),
panel.background = element_blank(),
legend.key=element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(1.25, 0.8),
plot.tag.position=c(0.01,0.98),
legend.title = element_blank(),
legend.text = element_text(colour="black", size=10),
axis.line.x = element_line(colour = "black", size = 1),
axis.line.y = element_line(colour = "black", size = 1),
axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
axis.ticks = element_line(size = 1),
axis.ticks.length = unit(.3, "cm"))
## Create customized functions for analysis ####
# Create function to calculate standard error and upper/lower standard deviation
<- function(x) sd(x,na.rm=T) / sqrt(length(na.exclude(x)))
standard_error <- function(x) mean(x,na.rm=T)+(sd(x)/2)
upper_SD <- function(x) mean(x,na.rm=T)-(sd(x)/2) lower_SD
Here we decompose the variance of males into the variance in male mating success (number of mating partners; MS), paternity share (proportion of offspring of the focal with each mating partner; PS) and in the fecundity of the partner (number of offspring produced by mating partners; pFec) and of females the variance in mating success (number of partners; MS) and female fecundity (number of offspring produced; Fec).
## Variance decomposition for males ####
### Mating success (MS) ####
# Large arena size
<-as.data.table(D_data_Large_arena$rel_m_cMS)
D_data_Large_arena_M_MS_n <- function(d, i){
c <- d[i,]
d2 return(var(d2[,1], na.rm=TRUE))
}<- boot(D_data_Large_arena_M_MS_n, c, R=10000)
Large_arena_M_MS_bootvar
# Small arena size
<-as.data.table(D_data_Small_arena$rel_m_cMS)
D_data_Small_arena_M_MS_n
<- boot(D_data_Small_arena_M_MS_n, c, R=10000)
Small_arena_M_MS_bootvar
# Small group size
<-as.data.table(D_data_Small_pop$rel_m_cMS)
D_data_Small_pop_M_MS_n
<- boot(D_data_Small_pop_M_MS_n, c, R=10000)
Small_pop_M_MS_bootvar
# Large group size
<-as.data.table(D_data_Large_pop$rel_m_cMS)
D_data_Large_pop_M_MS_n
<- boot(D_data_Large_pop_M_MS_n, c, R=10000)
Large_pop_M_MS_bootvar rm("c")
### Paternity share (PS) ####
# Large arena size
<-as.data.table(D_data_Large_arena$rel_m_PS)
D_data_Large_arena_M_PS_n <- function(d, i){
c <- d[i,]
d2 return(var(d2[,1], na.rm=TRUE))
}<- boot(D_data_Large_arena_M_PS_n, c, R=10000)
Large_arena_M_PS_bootvar
# Small arena size
<-as.data.table(D_data_Small_arena$rel_m_PS)
D_data_Small_arena_M_PS_n
<- boot(D_data_Small_arena_M_PS_n, c, R=10000)
Small_arena_M_PS_bootvar
# Small group size
<-as.data.table(D_data_Small_pop$rel_m_PS)
D_data_Small_pop_M_PS_n
<- boot(D_data_Small_pop_M_PS_n, c, R=10000)
Small_pop_M_PS_bootvar
# Large group size
<-as.data.table(D_data_Large_pop$rel_m_PS)
D_data_Large_pop_M_PS_n
<- boot(D_data_Large_pop_M_PS_n, c, R=10000)
Large_pop_M_PS_bootvar rm("c")
### Partner fecundity (pFec) ####
# Large arena size
<-as.data.table(D_data_Large_arena$rel_m_pFec)
D_data_Large_arena_M_pFec_n <- function(d, i){
c <- d[i,]
d2 return(var(d2[,1], na.rm=TRUE))
}<- boot(D_data_Large_arena_M_pFec_n, c, R=10000)
Large_arena_M_pFec_bootvar
# Small arena size
<-as.data.table(D_data_Small_arena$rel_m_pFec)
D_data_Small_arena_M_pFec_n
<- boot(D_data_Small_arena_M_pFec_n, c, R=10000)
Small_arena_M_pFec_bootvar
# Small group size
<-as.data.table(D_data_Small_pop$rel_m_pFec)
D_data_Small_pop_M_pFec_n
<- boot(D_data_Small_pop_M_pFec_n, c, R=10000)
Small_pop_M_pFec_bootvar
# Large group size
<-as.data.table(D_data_Large_pop$rel_m_pFec)
D_data_Large_pop_M_pFec_n
<- boot(D_data_Large_pop_M_pFec_n, c, R=10000)
Large_pop_M_pFec_bootvar rm("c")
## Variance decomposition for females ####
### Mating success (MS) ####
# Large arena size
<-as.data.table(D_data_Large_arena$rel_f_cMS)
D_data_Large_arena_F_fMS_n <- function(d, i){
c <- d[i,]
d2 return(var(d2[,1], na.rm=TRUE))
}<- boot(D_data_Large_arena_F_fMS_n, c, R=10000)
Large_arena_F_fMS_bootvar
# Small arena size
<-as.data.table(D_data_Small_arena$rel_f_cMS)
D_data_Small_arena_F_fMS_n
<- boot(D_data_Small_arena_F_fMS_n, c, R=10000)
Small_arena_F_fMS_bootvar
# Small group size
<-as.data.table(D_data_Small_pop$rel_f_cMS)
D_data_Small_pop_F_fMS_n
<- boot(D_data_Small_pop_F_fMS_n, c, R=10000)
Small_pop_F_fMS_bootvar
# Large group size
<-as.data.table(D_data_Large_pop$rel_f_cMS)
D_data_Large_pop_F_fMS_n
<- boot(D_data_Large_pop_F_fMS_n, c, R=10000)
Large_pop_F_fMS_bootvar rm("c")
### Fecundity (Fec) ####
# Large arena size
<-as.data.table(D_data_Large_arena$rel_f_fec_pMate)
D_data_Large_arena_F_fFec_n <- function(d, i){
c <- d[i,]
d2 return(var(d2[,1], na.rm=TRUE))
}<- boot(D_data_Large_arena_F_fFec_n, c, R=10000)
Large_arena_F_fFec_bootvar
# Small arena size
<-as.data.table(D_data_Small_arena$rel_f_fec_pMate)
D_data_Small_arena_F_fFec_n
<- boot(D_data_Small_arena_F_fFec_n, c, R=10000)
Small_arena_F_fFec_bootvar
# Small group size
<-as.data.table(D_data_Small_pop$rel_f_fec_pMate)
D_data_Small_pop_F_fFec_n
<- boot(D_data_Small_pop_F_fFec_n, c, R=10000)
Small_pop_F_fFec_bootvar
# Large group size
<-as.data.table(D_data_Large_pop$rel_f_fec_pMate)
D_data_Large_pop_F_fFec_n
<- boot(D_data_Large_pop_F_fFec_n, c, R=10000)
Large_pop_F_fFec_bootvar rm("c")
### Extract data and write results table ####
<- as.data.frame(cbind("Male", "MS", "Large arena size", mean(Large_arena_M_MS_bootvar$t), quantile(Large_arena_M_MS_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_MS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_MS <- as.data.frame(cbind("Male", "MS", "Small arena size", mean(Small_arena_M_MS_bootvar$t), quantile(Small_arena_M_MS_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_MS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_MS <- as.data.frame(cbind("Male", "MS", "Small population size", mean(Small_pop_M_MS_bootvar$t), quantile(Small_pop_M_MS_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_MS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_MS <- as.data.frame(cbind("Male", "MS", "Large population size", mean(Large_pop_M_MS_bootvar$t), quantile(Large_pop_M_MS_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_MS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_MS
<- as.data.frame(cbind("Male", "PS", "Large arena size", mean(Large_arena_M_PS_bootvar$t), quantile(Large_arena_M_PS_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_PS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_PS <- as.data.frame(cbind("Male", "PS", "Small arena size", mean(Small_arena_M_PS_bootvar$t), quantile(Small_arena_M_PS_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_PS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_PS <- as.data.frame(cbind("Male", "PS", "Small population size", mean(Small_pop_M_PS_bootvar$t), quantile(Small_pop_M_PS_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_PS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_PS <- as.data.frame(cbind("Male", "PS", "Large population size", mean(Large_pop_M_PS_bootvar$t), quantile(Large_pop_M_PS_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_PS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_PS
<- as.data.frame(cbind("Male", "pFec", "Large arena size", mean(Large_arena_M_pFec_bootvar$t), quantile(Large_arena_M_pFec_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_pFec <- as.data.frame(cbind("Male", "pFec", "Small arena size", mean(Small_arena_M_pFec_bootvar$t), quantile(Small_arena_M_pFec_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_pFec <- as.data.frame(cbind("Male", "pFec", "Small population size", mean(Small_pop_M_pFec_bootvar$t), quantile(Small_pop_M_pFec_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_pFec <- as.data.frame(cbind("Male", "pFec", "Large population size", mean(Large_pop_M_pFec_bootvar$t), quantile(Large_pop_M_pFec_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_pFec
<- as.data.frame(cbind("Female", "fMS", "Large arena size", mean(Large_arena_F_fMS_bootvar$t), quantile(Large_arena_F_fMS_bootvar$t,.025, names = FALSE), quantile(Large_arena_F_fMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Large_arena_fMS <- as.data.frame(cbind("Female", "fMS", "Small arena size", mean(Small_arena_F_fMS_bootvar$t), quantile(Small_arena_F_fMS_bootvar$t,.025, names = FALSE), quantile(Small_arena_F_fMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Small_arena_fMS <- as.data.frame(cbind("Female", "fMS", "Small population size", mean(Small_pop_F_fMS_bootvar$t), quantile(Small_pop_F_fMS_bootvar$t,.025, names = FALSE), quantile(Small_pop_F_fMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Small_pop_fMS <- as.data.frame(cbind("Female", "fMS", "Large population size", mean(Large_pop_F_fMS_bootvar$t), quantile(Large_pop_F_fMS_bootvar$t,.025, names = FALSE), quantile(Large_pop_F_fMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Large_pop_fMS
<- as.data.frame(cbind("Female", "fFec", "Large arena size", mean(Large_arena_F_fFec_bootvar$t), quantile(Large_arena_F_fFec_bootvar$t,.025, names = FALSE), quantile(Large_arena_F_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Large_arena_fFec <- as.data.frame(cbind("Female", "fFec", "Small arena size", mean(Small_arena_F_fFec_bootvar$t), quantile(Small_arena_F_fFec_bootvar$t,.025, names = FALSE), quantile(Small_arena_F_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Small_arena_fFec <- as.data.frame(cbind("Female", "fFec", "Small population size", mean(Small_pop_F_fFec_bootvar$t), quantile(Small_pop_F_fFec_bootvar$t,.025, names = FALSE), quantile(Small_pop_F_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Small_pop_fFec <- as.data.frame(cbind("Female", "fFec", "Large population size", mean(Large_pop_F_fFec_bootvar$t,na.rm=T), quantile(Large_pop_F_fFec_bootvar$t,.025, names = FALSE,na.rm=T), quantile(Large_pop_F_fFec_bootvar$t,.975, names = FALSE,na.rm=T)))
PhenVarBoot_Table_Female_Large_pop_fFec
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Small_pop_MS,PhenVarBoot_Table_Male_Large_pop_MS,
PhenVarBoot_Table
PhenVarBoot_Table_Male_Large_arena_MS,PhenVarBoot_Table_Male_Small_arena_MS,
PhenVarBoot_Table_Male_Small_pop_PS,PhenVarBoot_Table_Male_Large_pop_PS,
PhenVarBoot_Table_Male_Large_arena_PS,PhenVarBoot_Table_Male_Small_arena_PS,
PhenVarBoot_Table_Male_Small_pop_pFec,PhenVarBoot_Table_Male_Large_pop_pFec,
PhenVarBoot_Table_Male_Large_arena_pFec,PhenVarBoot_Table_Male_Small_arena_pFec,
PhenVarBoot_Table_Female_Small_pop_fMS,PhenVarBoot_Table_Female_Large_pop_fMS,
PhenVarBoot_Table_Female_Large_arena_fMS,PhenVarBoot_Table_Female_Small_arena_fMS,
PhenVarBoot_Table_Female_Small_pop_fFec,PhenVarBoot_Table_Female_Large_pop_fFec,
PhenVarBoot_Table_Female_Large_arena_fFec,PhenVarBoot_Table_Female_Small_arena_fFec)))
is.table(PhenVarBoot_Table)
colnames(PhenVarBoot_Table)[1] <- "Sex"
colnames(PhenVarBoot_Table)[2] <- "Variance_component"
colnames(PhenVarBoot_Table)[3] <- "Treatment"
colnames(PhenVarBoot_Table)[4] <- "Variance"
colnames(PhenVarBoot_Table)[5] <- "l95_CI"
colnames(PhenVarBoot_Table)[6] <- "u95_CI"
4]=round(as.numeric(PhenVarBoot_Table[,4]),digits=2)
PhenVarBoot_Table[,5]=round(as.numeric(PhenVarBoot_Table[,5]),digits=2)
PhenVarBoot_Table[,6]=round(as.numeric(PhenVarBoot_Table[,6]),digits=2)
PhenVarBoot_Table[,rownames(PhenVarBoot_Table) <- c()
Here we compute the covariances between the above obtained variance components for both sexes.
## Compute covariance matrices ####
# Large arena size
# Covariance mMS x PS
=as.data.frame(cbind(D_data_Large_arena_M_MS_n,D_data_Large_arena_M_PS_n))
x5<- function(d, i){
c <- d[i,]
d2 return(2*cov(d2[1],d2[2],use='pairwise.complete.obs'))
}<- boot(x5, c, R=10000)
Large_arena_M_cov_mMS_PS_bootvar
# Covariance mMS x pFec
=as.data.frame(cbind(D_data_Large_arena_M_MS_n,D_data_Large_arena_M_pFec_n))
x7
<- boot(x7, c, R=10000)
Large_arena_M_cov_mMS_pFec_bootvar
# Covariance PS x pFec
=as.data.frame(cbind(D_data_Large_arena_M_PS_n,D_data_Large_arena_M_pFec_n))
x9
<- boot(x9, c, R=10000)
Large_arena_M_cov_PS_pFec_bootvar
# Covariance fMS x fFec
=as.data.frame(cbind(D_data_Large_arena_F_fMS_n,D_data_Large_arena_F_fFec_n))
x13
<- boot(x13, c, R=10000)
Large_arena_F_cov_fMS_fFec_bootvar rm('c')
# Extract data and write results table
<- as.data.frame(cbind("Male", "cov_mMS_PS", "Large arena size", mean(Large_arena_M_cov_mMS_PS_bootvar$t), quantile(Large_arena_M_cov_mMS_PS_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_cov_mMS_PS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_cov_mMS_PS <- as.data.frame(cbind("Male", "cov_mMS_pFec", "Large arena size", mean(Large_arena_M_cov_mMS_pFec_bootvar$t), quantile(Large_arena_M_cov_mMS_pFec_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_cov_mMS_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_cov_mMS_pFec
<- as.data.frame(cbind("Male", "cov_PS_pFec", "Large arena size", mean(Large_arena_M_cov_PS_pFec_bootvar$t), quantile(Large_arena_M_cov_PS_pFec_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_cov_PS_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_cov_PS_pFec
<- as.data.frame(cbind("Female", "cov_fMS_fFec", "Large arena size", mean(Large_arena_F_cov_fMS_fFec_bootvar$t), quantile(Large_arena_F_cov_fMS_fFec_bootvar$t,.025, names = FALSE), quantile(Large_arena_F_cov_fMS_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Large_arena_cov_fMS_fFec
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Large_arena_cov_mMS_PS,
PhenVarBoot_Cov_Table_Large_arena
PhenVarBoot_Table_Male_Large_arena_cov_mMS_pFec,
PhenVarBoot_Table_Male_Large_arena_cov_PS_pFec,digits=3)
PhenVarBoot_Table_Female_Large_arena_cov_fMS_fFec)),
is.table(PhenVarBoot_Cov_Table_Large_arena)
colnames(PhenVarBoot_Cov_Table_Large_arena)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_Large_arena)[2] <- "Cov_component"
colnames(PhenVarBoot_Cov_Table_Large_arena)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_Large_arena)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_Large_arena)[5] <- "l95_CI"
colnames(PhenVarBoot_Cov_Table_Large_arena)[6] <- "u95_CI"
4]=as.numeric(PhenVarBoot_Cov_Table_Large_arena[,4])
PhenVarBoot_Cov_Table_Large_arena[,5]=as.numeric(PhenVarBoot_Cov_Table_Large_arena[,5])
PhenVarBoot_Cov_Table_Large_arena[,6]=as.numeric(PhenVarBoot_Cov_Table_Large_arena[,6])
PhenVarBoot_Cov_Table_Large_arena[,
# Small Arena
# Covariance mMS x PS
=as.data.frame(cbind(D_data_Small_arena_M_MS_n,D_data_Small_arena_M_PS_n))
x5<- function(d, i){
c <- d[i,]
d2 return(2*cov(d2[1],d2[2],use='pairwise.complete.obs'))
}<- boot(x5, c, R=10000)
Small_arena_M_cov_mMS_PS_bootvar
# Covariance mMS x pFec
=as.data.frame(cbind(D_data_Small_arena_M_MS_n,D_data_Small_arena_M_pFec_n))
x7
<- boot(x7, c, R=10000)
Small_arena_M_cov_mMS_pFec_bootvar
# Covariance PS x pFec
=as.data.frame(cbind(D_data_Small_arena_M_PS_n,D_data_Small_arena_M_pFec_n))
x9
<- boot(x9, c, R=10000)
Small_arena_M_cov_PS_pFec_bootvar
# Covariance fMS x fFec
=as.data.frame(cbind(D_data_Small_arena_F_fMS_n,D_data_Small_arena_F_fFec_n))
x13
<- boot(x13, c, R=10000)
Small_arena_F_cov_fMS_fFec_bootvar rm('c')
# Extract data and write results table
<- as.data.frame(cbind("Male", "cov_mMS_PS", "Small arena size", mean(Small_arena_M_cov_mMS_PS_bootvar$t), quantile(Small_arena_M_cov_mMS_PS_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_cov_mMS_PS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_cov_mMS_PS <- as.data.frame(cbind("Male", "cov_mMS_pFec", "Small arena size", mean(Small_arena_M_cov_mMS_pFec_bootvar$t), quantile(Small_arena_M_cov_mMS_pFec_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_cov_mMS_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_cov_mMS_pFec
<- as.data.frame(cbind("Male", "cov_PS_pFec", "Small arena size", mean(Small_arena_M_cov_PS_pFec_bootvar$t), quantile(Small_arena_M_cov_PS_pFec_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_cov_PS_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_cov_PS_pFec
<- as.data.frame(cbind("Female", "cov_fMS_fFec", "Small arena size", mean(Small_arena_F_cov_fMS_fFec_bootvar$t), quantile(Small_arena_F_cov_fMS_fFec_bootvar$t,.025, names = FALSE), quantile(Small_arena_F_cov_fMS_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Small_arena_cov_fMS_fFec
<- as.data.frame(as.matrix(rbind( PhenVarBoot_Table_Male_Small_arena_cov_mMS_PS,
PhenVarBoot_Cov_Table_Small_arena
PhenVarBoot_Table_Male_Small_arena_cov_mMS_pFec,
PhenVarBoot_Table_Male_Small_arena_cov_PS_pFec,digits=3)
PhenVarBoot_Table_Female_Small_arena_cov_fMS_fFec)),
is.table(PhenVarBoot_Cov_Table_Small_arena)
colnames(PhenVarBoot_Cov_Table_Small_arena)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_Small_arena)[2] <- "Cov_component"
colnames(PhenVarBoot_Cov_Table_Small_arena)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_Small_arena)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_Small_arena)[5] <- "l95_CI"
colnames(PhenVarBoot_Cov_Table_Small_arena)[6] <- "u95_CI"
4]=as.numeric(PhenVarBoot_Cov_Table_Small_arena[,4])
PhenVarBoot_Cov_Table_Small_arena[,5]=as.numeric(PhenVarBoot_Cov_Table_Small_arena[,5])
PhenVarBoot_Cov_Table_Small_arena[,6]=as.numeric(PhenVarBoot_Cov_Table_Small_arena[,6])
PhenVarBoot_Cov_Table_Small_arena[,
# Small group size
# Covariance mMS x PS
=as.data.frame(cbind(D_data_Small_pop_M_MS_n,D_data_Small_pop_M_PS_n))
x5<- function(d, i){
c <- d[i,]
d2 return(2*cov(d2[1],d2[2],use='pairwise.complete.obs'))
}<- boot(x5, c, R=10000)
Small_pop_M_cov_mMS_PS_bootvar
# Covariance mMS x pFec
=as.data.frame(cbind(D_data_Small_pop_M_MS_n,D_data_Small_pop_M_pFec_n))
x7
<- boot(x7, c, R=10000)
Small_pop_M_cov_mMS_pFec_bootvar
# Covariance PS x pFec
=as.data.frame(cbind(D_data_Small_pop_M_PS_n,D_data_Small_pop_M_pFec_n))
x9
<- boot(x9, c, R=10000)
Small_pop_M_cov_PS_pFec_bootvar
# Covariance fMS x fFec
=as.data.frame(cbind(D_data_Small_pop_F_fMS_n,D_data_Small_pop_F_fFec_n))
x13
<- boot(x13, c, R=10000)
Small_pop_F_cov_fMS_fFec_bootvar rm('c')
# Extract data and write results table
<- as.data.frame(cbind("Male", "cov_mMS_PS", "Small population size", mean(Small_pop_M_cov_mMS_PS_bootvar$t), quantile(Small_pop_M_cov_mMS_PS_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_cov_mMS_PS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_cov_mMS_PS <- as.data.frame(cbind("Male", "cov_mMS_pFec", "Small population size", mean(Small_pop_M_cov_mMS_pFec_bootvar$t), quantile(Small_pop_M_cov_mMS_pFec_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_cov_mMS_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_cov_mMS_pFec
<- as.data.frame(cbind("Male", "cov_PS_pFec", "Small population size", mean(Small_pop_M_cov_PS_pFec_bootvar$t), quantile(Small_pop_M_cov_PS_pFec_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_cov_PS_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_cov_PS_pFec
<- as.data.frame(cbind("Female", "cov_fMS_fFec", "Small population size", mean(Small_pop_F_cov_fMS_fFec_bootvar$t), quantile(Small_pop_F_cov_fMS_fFec_bootvar$t,.025, names = FALSE), quantile(Small_pop_F_cov_fMS_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Small_pop_cov_fMS_fFec
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Small_pop_cov_mMS_PS,
PhenVarBoot_Cov_Table_Small_pop
PhenVarBoot_Table_Male_Small_pop_cov_mMS_pFec,
PhenVarBoot_Table_Male_Small_pop_cov_PS_pFec,digits=3)
PhenVarBoot_Table_Female_Small_pop_cov_fMS_fFec)),
is.table(PhenVarBoot_Cov_Table_Small_pop)
colnames(PhenVarBoot_Cov_Table_Small_pop)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_Small_pop)[2] <- "Cov_component"
colnames(PhenVarBoot_Cov_Table_Small_pop)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_Small_pop)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_Small_pop)[5] <- "l95_CI"
colnames(PhenVarBoot_Cov_Table_Small_pop)[6] <- "u95_CI"
4]=as.numeric(PhenVarBoot_Cov_Table_Small_pop[,4])
PhenVarBoot_Cov_Table_Small_pop[,5]=as.numeric(PhenVarBoot_Cov_Table_Small_pop[,5])
PhenVarBoot_Cov_Table_Small_pop[,6]=as.numeric(PhenVarBoot_Cov_Table_Small_pop[,6])
PhenVarBoot_Cov_Table_Small_pop[,
# Large group size
# Covariance mMS x PS
=as.data.frame(cbind(D_data_Large_pop_M_MS_n,D_data_Large_pop_M_PS_n))
x5<- function(d, i){
c <- d[i,]
d2 return(2*cov(d2[1],d2[2],use='pairwise.complete.obs'))
}<- boot(x5, c, R=10000)
Large_pop_M_cov_mMS_PS_bootvar
# Covariance mMS x pFec
=as.data.frame(cbind(D_data_Large_pop_M_MS_n,D_data_Large_pop_M_pFec_n))
x7
<- boot(x7, c, R=10000)
Large_pop_M_cov_mMS_pFec_bootvar
# Covariance PS x pFec
=as.data.frame(cbind(D_data_Large_pop_M_PS_n,D_data_Large_pop_M_pFec_n))
x9
<- boot(x9, c, R=10000)
Large_pop_M_cov_PS_pFec_bootvar
# Covariance fMS x fFec
=as.data.frame(cbind(D_data_Large_pop_F_fMS_n,D_data_Large_pop_F_fFec_n))
x13
<- boot(x13, c, R=10000)
Large_pop_F_cov_fMS_fFec_bootvar rm('c')
# Extract data and write results table
<- as.data.frame(cbind("Male", "cov_mMS_PS", "Large population size", mean(Large_pop_M_cov_mMS_PS_bootvar$t), quantile(Large_pop_M_cov_mMS_PS_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_cov_mMS_PS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_cov_mMS_PS <- as.data.frame(cbind("Male", "cov_mMS_pFec", "Large population size", mean(Large_pop_M_cov_mMS_pFec_bootvar$t), quantile(Large_pop_M_cov_mMS_pFec_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_cov_mMS_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_cov_mMS_pFec
<- as.data.frame(cbind("Male", "cov_PS_pFec", "Large population size", mean(Large_pop_M_cov_PS_pFec_bootvar$t), quantile(Large_pop_M_cov_PS_pFec_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_cov_PS_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_cov_PS_pFec
<- as.data.frame(cbind("Female", "cov_fMS_fFec", "Large population size", mean(Large_pop_F_cov_fMS_fFec_bootvar$t), quantile(Large_pop_F_cov_fMS_fFec_bootvar$t,.025, names = FALSE), quantile(Large_pop_F_cov_fMS_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_Large_pop_cov_fMS_fFec
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Large_pop_cov_mMS_PS,
PhenVarBoot_Cov_Table_Large_pop
PhenVarBoot_Table_Male_Large_pop_cov_mMS_pFec,
PhenVarBoot_Table_Male_Large_pop_cov_PS_pFec,digits=3)
PhenVarBoot_Table_Female_Large_pop_cov_fMS_fFec)),
is.table(PhenVarBoot_Cov_Table_Large_pop)
colnames(PhenVarBoot_Cov_Table_Large_pop)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_Large_pop)[2] <- "Cov_component"
colnames(PhenVarBoot_Cov_Table_Large_pop)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_Large_pop)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_Large_pop)[5] <- "l95_CI"
colnames(PhenVarBoot_Cov_Table_Large_pop)[6] <- "u95_CI"
4]=as.numeric(PhenVarBoot_Cov_Table_Large_pop[,4])
PhenVarBoot_Cov_Table_Large_pop[,5]=as.numeric(PhenVarBoot_Cov_Table_Large_pop[,5])
PhenVarBoot_Cov_Table_Large_pop[,6]=as.numeric(PhenVarBoot_Cov_Table_Large_pop[,6])
PhenVarBoot_Cov_Table_Large_pop[,
### Extract data and write results table ####
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Small_pop_MS,PhenVarBoot_Table_Male_Large_pop_MS,
PhenVarBoot_Table_plot
PhenVarBoot_Table_Male_Large_arena_MS,PhenVarBoot_Table_Male_Small_arena_MS,
PhenVarBoot_Table_Male_Small_pop_PS,PhenVarBoot_Table_Male_Large_pop_PS,
PhenVarBoot_Table_Male_Large_arena_PS,PhenVarBoot_Table_Male_Small_arena_PS,
PhenVarBoot_Table_Male_Small_pop_pFec,PhenVarBoot_Table_Male_Large_pop_pFec,
PhenVarBoot_Table_Male_Large_arena_pFec,PhenVarBoot_Table_Male_Small_arena_pFec,
PhenVarBoot_Table_Male_Small_pop_cov_mMS_PS,PhenVarBoot_Table_Male_Large_pop_cov_mMS_PS,
PhenVarBoot_Table_Male_Large_arena_cov_mMS_PS,PhenVarBoot_Table_Male_Small_arena_cov_mMS_PS,
PhenVarBoot_Table_Male_Small_pop_cov_mMS_pFec,PhenVarBoot_Table_Male_Large_pop_cov_mMS_pFec,
PhenVarBoot_Table_Male_Large_arena_cov_mMS_pFec,PhenVarBoot_Table_Male_Small_arena_cov_mMS_pFec,
PhenVarBoot_Table_Male_Small_pop_cov_PS_pFec,PhenVarBoot_Table_Male_Large_pop_cov_PS_pFec,
PhenVarBoot_Table_Male_Large_arena_cov_PS_pFec,PhenVarBoot_Table_Male_Small_arena_cov_PS_pFec,
PhenVarBoot_Table_Female_Small_pop_fMS,PhenVarBoot_Table_Female_Large_pop_fMS,
PhenVarBoot_Table_Female_Large_arena_fMS,PhenVarBoot_Table_Female_Small_arena_fMS,
PhenVarBoot_Table_Female_Small_pop_fFec,PhenVarBoot_Table_Female_Large_pop_fFec,
PhenVarBoot_Table_Female_Large_arena_fFec,PhenVarBoot_Table_Female_Small_arena_fFec,
PhenVarBoot_Table_Female_Small_pop_cov_fMS_fFec,PhenVarBoot_Table_Female_Large_pop_cov_fMS_fFec,
PhenVarBoot_Table_Female_Large_arena_cov_fMS_fFec,PhenVarBoot_Table_Female_Small_arena_cov_fMS_fFec)))
is.table(PhenVarBoot_Table_plot)
colnames(PhenVarBoot_Table_plot)[1] <- "Sex"
colnames(PhenVarBoot_Table_plot)[2] <- "Cov_component"
colnames(PhenVarBoot_Table_plot)[3] <- "Treatment"
colnames(PhenVarBoot_Table_plot)[4] <- "Variance"
colnames(PhenVarBoot_Table_plot)[5] <- "l95_CI"
colnames(PhenVarBoot_Table_plot)[6] <- "u95_CI"
4]=round(as.numeric(PhenVarBoot_Table_plot[,4]),digits=2)
PhenVarBoot_Table_plot[,5]=round(as.numeric(PhenVarBoot_Table_plot[,5]),digits=2)
PhenVarBoot_Table_plot[,6]=round(as.numeric(PhenVarBoot_Table_plot[,6]),digits=2)
PhenVarBoot_Table_plot[,rownames(PhenVarBoot_Table_plot) <- c()
Table S9: Variances and covariances of variance decomposition of reproductive success into mating success (MS), paternity share (PS), and partner fecundity (pFec) for males and into mating success (MS) and fecundity (Fec) for females for group and arena size treatment given with mean and 95%CI estimated via bootstrapping.
kable(PhenVarBoot_Table_plot)
Sex | Cov_component | Treatment | Variance | l95_CI | u95_CI |
---|---|---|---|---|---|
Male | MS | Small population size | 0.22 | 0.14 | 0.31 |
Male | MS | Large population size | 0.39 | 0.24 | 0.57 |
Male | MS | Large arena size | 0.36 | 0.22 | 0.54 |
Male | MS | Small arena size | 0.25 | 0.16 | 0.37 |
Male | PS | Small population size | 0.20 | 0.14 | 0.28 |
Male | PS | Large population size | 0.37 | 0.27 | 0.46 |
Male | PS | Large arena size | 0.33 | 0.24 | 0.41 |
Male | PS | Small arena size | 0.25 | 0.17 | 0.35 |
Male | pFec | Small population size | 0.10 | 0.05 | 0.17 |
Male | pFec | Large population size | 0.08 | 0.03 | 0.13 |
Male | pFec | Large arena size | 0.08 | 0.04 | 0.14 |
Male | pFec | Small arena size | 0.09 | 0.04 | 0.16 |
Male | cov_mMS_PS | Small population size | -0.13 | -0.25 | -0.01 |
Male | cov_mMS_PS | Large population size | -0.31 | -0.50 | -0.13 |
Male | cov_mMS_PS | Large arena size | -0.31 | -0.50 | -0.15 |
Male | cov_mMS_PS | Small arena size | -0.13 | -0.27 | 0.01 |
Male | cov_mMS_pFec | Small population size | 0.05 | -0.03 | 0.15 |
Male | cov_mMS_pFec | Large population size | 0.01 | -0.08 | 0.09 |
Male | cov_mMS_pFec | Large arena size | 0.01 | -0.08 | 0.10 |
Male | cov_mMS_pFec | Small arena size | 0.05 | -0.03 | 0.14 |
Male | cov_PS_pFec | Small population size | -0.03 | -0.15 | 0.07 |
Male | cov_PS_pFec | Large population size | -0.08 | -0.21 | 0.03 |
Male | cov_PS_pFec | Large arena size | -0.03 | -0.15 | 0.07 |
Male | cov_PS_pFec | Small arena size | -0.08 | -0.22 | 0.03 |
Female | fMS | Small population size | 0.26 | 0.18 | 0.34 |
Female | fMS | Large population size | 0.60 | 0.38 | 0.84 |
Female | fMS | Large arena size | 0.34 | 0.21 | 0.50 |
Female | fMS | Small arena size | 0.49 | 0.32 | 0.70 |
Female | fFec | Small population size | 1.10 | 0.65 | 1.61 |
Female | fFec | Large population size | 0.79 | 0.47 | 1.16 |
Female | fFec | Large arena size | 1.09 | 0.61 | 1.63 |
Female | fFec | Small arena size | 0.83 | 0.54 | 1.14 |
Female | cov_fMS_fFec | Small population size | -0.22 | -0.50 | 0.04 |
Female | cov_fMS_fFec | Large population size | -0.13 | -0.52 | 0.22 |
Female | cov_fMS_fFec | Large arena size | -0.08 | -0.40 | 0.20 |
Female | cov_fMS_fFec | Small arena size | -0.31 | -0.61 | -0.02 |
# Set factors and levels
$Treatment<- factor(PhenVarBoot_Table_plot$Treatment, levels=c("Small population size",'Large population size','Large arena size','Small arena size'))
PhenVarBoot_Table_plot$Cov_component <- factor(PhenVarBoot_Table_plot$Cov_component, levels=c("MS",'PS','pFec','cov_mMS_PS','cov_mMS_pFec','cov_PS_pFec','fMS','fFec','cov_fMS_fFec'))
PhenVarBoot_Table_plot=PhenVarBoot_Table_plot[PhenVarBoot_Table_plot$Treatment!='Large population size',]
PhenVarBoot_Table_plot_arena=PhenVarBoot_Table_plot_arena[PhenVarBoot_Table_plot_arena$Treatment!='Small population size',]
PhenVarBoot_Table_plot_arena=PhenVarBoot_Table_plot[PhenVarBoot_Table_plot$Treatment!='Large arena size',]
PhenVarBoot_Table_plot_pop=PhenVarBoot_Table_plot_pop[PhenVarBoot_Table_plot_pop$Treatment!='Small arena size',]
PhenVarBoot_Table_plot_pop
## Plot: Variance decomposition (Figure 3) ####
<- ggplot(PhenVarBoot_Table_plot_pop[1:12,], aes(x=Cov_component, y=Variance, alpha=Treatment)) +
BarPlot_1scale_y_continuous(limits = c(-0.55, 0.6), breaks = c(-0.5,-0.25,0,0.25,0.5), expand = c(0 ,0)) +
geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
geom_bar(stat="identity", color="black", position=position_dodge(),fill=colpal2[2]) +
geom_errorbar(aes(ymin=l95_CI, ymax=u95_CI, group = Treatment), width=.3,size=.5,alpha=1, position=position_dodge(.9)) +
ylab('Variance') +xlab('Variance component') +ggtitle('')+labs(tag = "C")+
scale_x_discrete(breaks=waiver(),labels = c("MS","PS" ,"pFec",'2 cov\n(MS, \nPS)','2 cov\n(MS, \npFec)','2 cov\n(PS, \npFec)'))+
theme(panel.border = element_blank(),
plot.title = element_text(hjust = 0.5),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.tag.position=c(0.01,0.98),
legend.position = c(0.8, 0.9),
legend.title = element_blank(),
legend.text = element_text(colour="black", size=10),
axis.line.x = element_line(colour = "black", size = 1),
axis.line.y = element_line(colour = "black", size = 1),
axis.text.x = element_text(face="plain", color="black", size=8, angle=0),
axis.text.y = element_text(face="plain", color="black", size=13, angle=0),
axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
axis.ticks = element_line(size = 1),
axis.ticks.length = unit(.3, "cm"))+
scale_alpha_manual(values=c(0.65,1),name = "Treatment", labels = c('Small group','Large group'))
<-ggplot(PhenVarBoot_Table_plot_arena[1:12,], aes(x=Cov_component, y=Variance, alpha=Treatment)) +
BarPlot_2scale_y_continuous(limits = c(-0.55, 0.6), breaks = c(-0.5,-0.25,0,0.25,0.5), expand = c(0 ,0)) +
geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
geom_bar(stat="identity", color="black", position=position_dodge(),fill=colpal2[2]) +
geom_errorbar(aes(ymin=l95_CI, ymax=u95_CI, group = Treatment), width=.3,size=.5,alpha=1, position=position_dodge(.9)) +
ylab('') +xlab('Variance component') +ggtitle('')+labs(tag = "D")+
scale_x_discrete(breaks=waiver(),labels = c("MS","PS" ,"pFec",'2 cov\n(MS, \nPS)','2 cov\n(MS, \npFec)','2 cov\n(PS, \npFec)'))+
scale_alpha_manual(values=c(0.65,1),name = "Treatment", labels = c('Large arena','Small arena'))+
theme(panel.border = element_blank(),
plot.title = element_text(hjust = 0.5),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.8, 0.9),
plot.tag.position=c(0.01,0.98),
legend.title = element_blank(),
legend.text = element_text(colour="black", size=10),
axis.line.x = element_line(colour = "black", size = 1),
axis.line.y = element_line(colour = "black", size = 1),
axis.text.x = element_text(face="plain", color="black", size=8, angle=0),
axis.text.y = element_text(face="plain", color="black", size=13, angle=0),
axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
axis.ticks = element_line(size = 1),
axis.ticks.length = unit(.3, "cm"))
<- ggplot(PhenVarBoot_Table_plot_pop[13:18,], aes(x=Cov_component, y=Variance, alpha=Treatment)) +
BarPlot_3scale_y_continuous(limits = c(-0.7, 2), breaks = c(-0.5,0,0.5,1,1.5,2), expand = c(0 ,0)) +
geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
geom_bar(stat="identity", color="black", position=position_dodge(),fill=colpal2[1]) +
ylab('Variance') +xlab('') +ggtitle('')+labs(tag = "A")+
scale_x_discrete(breaks=waiver(),labels = c('MS','Fec','2 cov\n(MS, Fec)'))+
theme(panel.border = element_blank(),
plot.title = element_text(hjust = 0.5),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.8, 0.9),
plot.tag.position=c(0.01,0.98),
legend.title = element_blank(),
legend.text = element_text(colour="black", size=10),
axis.line.x = element_line(colour = "black", size = 1),
axis.line.y = element_line(colour = "black", size = 1),
axis.text.x = element_text(face="plain", color="black", size=10, angle=0),
axis.text.y = element_text(face="plain", color="black", size=13, angle=0),
axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
axis.ticks = element_line(size = 1),
axis.ticks.length = unit(.3, "cm")) +
geom_errorbar(aes(ymin=l95_CI, ymax=u95_CI, group = Treatment), width=.3,size=.5,alpha=1, position=position_dodge(.9)) +
scale_alpha_manual(values=c(0.65,1),name = "Treatment", labels = c('Small group','Large group'))
<- ggplot(PhenVarBoot_Table_plot_arena[13:18,], aes(x=Cov_component, y=Variance, alpha=Treatment)) +
BarPlot_4scale_y_continuous(limits = c(-0.7, 2), breaks = c(-0.5,0,0.5,1,1.5,2), expand = c(0 ,0)) +
geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
geom_bar(stat="identity", color="black", position=position_dodge(),fill=colpal2[1]) +
ylab('') +xlab('') +ggtitle('')+labs(tag = "B")+
scale_x_discrete(breaks=waiver(),labels = c('MS','Fec','2 cov\n(MS, Fec)'))+
theme(panel.border = element_blank(),
plot.title = element_text(hjust = 0.5),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.8, 0.9),
plot.tag.position=c(0.01,0.98),
legend.title = element_blank(),
legend.text = element_text(colour="black", size=10),
axis.line.x = element_line(colour = "black", size = 1),
axis.line.y = element_line(colour = "black", size = 1),
axis.text.x = element_text(face="plain", color="black", size=10, angle=0),
axis.text.y = element_text(face="plain", color="black", size=13, angle=0),
axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
axis.ticks = element_line(size = 1),
axis.ticks.length = unit(.3, "cm"),legend.background = element_rect(fill='transparent')) +
geom_errorbar(aes(ymin=l95_CI, ymax=u95_CI, group = Treatment), width=.3,size=.5,alpha=1, position=position_dodge(.9)) +
scale_alpha_manual(values=c(0.65,1),name = "Treatment", labels = c('Large arena','Small arena'))
# Figure 3
<-grid.arrange(BarPlot_3,BarPlot_4,BarPlot_1,BarPlot_2, nrow = 2,ncol=2) Figure_3
Figure 3: Variance components of reproductive success into mating success (MS) and fecundity (Fec) and their covariance for females (A + B) and into mating success (MS), paternity share (PS), and partner fecundity (pFec) and their covariances for males (C + D) for group size treatment (A + C) and arena size treatment (B + D). Mean and 95%CI estimated via bootstrapping (Table S9).
=plot_grid(Figure_3, ncol=1, rel_heights=c(0.1, 1)) # rel_heights values control title margins Fig_3
Next, we tested if the (co-) variance components of males and females differed between the treatments (large vs small population size & small vs large arena size).
## Permuation test for treatment comparison of variance decomposition ####
### Male treatment comparisons ####
#### Mating success (MS) ####
# Arena size
=c(Small_arena_M_MS_bootvar$t)-c(Large_arena_M_MS_bootvar$t)
Treat_diff_Male_arena_mMS
=mean(Treat_diff_Male_arena_mMS,na.rm=TRUE)
t_Treat_diff_Male_arena_mMS=quantile(Treat_diff_Male_arena_mMS,.025,na.rm=TRUE)
t_Treat_diff_Male_arena_mMS_lower=quantile(Treat_diff_Male_arena_mMS,.975,na.rm=TRUE)
t_Treat_diff_Male_arena_mMS_upper
# Permutation test to calculate p value
=c(D_data_Large_arena$rel_m_cMS,D_data_Small_arena$rel_m_cMS)
comb_data
= var(na.omit((D_data_Small_arena$rel_m_cMS)))-var(na.omit((D_data_Large_arena$rel_m_cMS)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Large_arena$rel_m_cMS)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Small_arena$rel_m_cMS)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_arena_mMS_p
# Population size
=c(Large_pop_M_MS_bootvar$t)-c(Small_pop_M_MS_bootvar$t)
Treat_diff_Male_pop_mMS
=mean(Treat_diff_Male_pop_mMS,na.rm=TRUE)
t_Treat_diff_Male_pop_mMS=quantile(Treat_diff_Male_pop_mMS,.025,na.rm=TRUE)
t_Treat_diff_Male_pop_mMS_lower=quantile(Treat_diff_Male_pop_mMS,.975,na.rm=TRUE)
t_Treat_diff_Male_pop_mMS_upper
# Permutation test to calculate p value
=c(D_data_Small_pop$rel_m_cMS,D_data_Large_pop$rel_m_cMS)
comb_data
= var(na.omit((D_data_Large_pop$rel_m_cMS)))-var(na.omit((D_data_Small_pop$rel_m_cMS)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Small_pop$rel_m_cMS)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Large_pop$rel_m_cMS)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_pop_mMS_p
#### Paternity success (PS) ####
# Arena size
=c(Small_arena_M_PS_bootvar$t)-c(Large_arena_M_PS_bootvar$t)
Treat_diff_Male_arena_mPS
=mean(Treat_diff_Male_arena_mPS,na.rm=TRUE)
t_Treat_diff_Male_arena_mPS=quantile(Treat_diff_Male_arena_mPS,.025,na.rm=TRUE)
t_Treat_diff_Male_arena_mPS_lower=quantile(Treat_diff_Male_arena_mPS,.975,na.rm=TRUE)
t_Treat_diff_Male_arena_mPS_upper
# Permutation test to calculate p value
=c(D_data_Large_arena$rel_m_PS,D_data_Small_arena$rel_m_PS)
comb_data
= var(na.omit((D_data_Small_arena$rel_m_PS)))-var(na.omit((D_data_Large_arena$rel_m_PS)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Large_arena$rel_m_PS)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Small_arena$rel_m_PS)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_arena_mPS_p
# Population size
=c(Large_pop_M_PS_bootvar$t)-c(Small_pop_M_PS_bootvar$t)
Treat_diff_Male_pop_mPS
=mean(Treat_diff_Male_pop_mPS,na.rm=TRUE)
t_Treat_diff_Male_pop_mPS=quantile(Treat_diff_Male_pop_mPS,.025,na.rm=TRUE)
t_Treat_diff_Male_pop_mPS_lower=quantile(Treat_diff_Male_pop_mPS,.975,na.rm=TRUE)
t_Treat_diff_Male_pop_mPS_upper
# Permutation test to calculate p value
=c(D_data_Small_pop$rel_m_PS,D_data_Large_pop$rel_m_PS)
comb_data
= var(na.omit((D_data_Large_pop$rel_m_PS)))-var(na.omit((D_data_Small_pop$rel_m_PS)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Small_pop$rel_m_PS)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Large_pop$rel_m_PS)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_pop_mPS_p
#### Partner fecundity (Fec) ####
# Arena size
=c(Small_arena_M_pFec_bootvar$t)-c(Large_arena_M_pFec_bootvar$t)
Treat_diff_Male_arena_mFec
=mean(Treat_diff_Male_arena_mFec,na.rm=TRUE)
t_Treat_diff_Male_arena_mFec=quantile(Treat_diff_Male_arena_mFec,.025,na.rm=TRUE)
t_Treat_diff_Male_arena_mFec_lower=quantile(Treat_diff_Male_arena_mFec,.975,na.rm=TRUE)
t_Treat_diff_Male_arena_mFec_upper
# Permutation test to calculate p value
=c(D_data_Large_arena$rel_m_pFec,D_data_Small_arena$rel_m_pFec)
comb_data
= var(na.omit((D_data_Small_arena$rel_m_pFec)))-var(na.omit((D_data_Large_arena$rel_m_pFec)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Large_arena$rel_m_pFec)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Small_arena$rel_m_pFec)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_arena_mFec_p
# Population size
=c(Large_pop_M_pFec_bootvar$t)-c(Small_pop_M_pFec_bootvar$t)
Treat_diff_Male_pop_mFec
=mean(Treat_diff_Male_pop_mFec,na.rm=TRUE)
t_Treat_diff_Male_pop_mFec=quantile(Treat_diff_Male_pop_mFec,.025,na.rm=TRUE)
t_Treat_diff_Male_pop_mFec_lower=quantile(Treat_diff_Male_pop_mFec,.975,na.rm=TRUE)
t_Treat_diff_Male_pop_mFec_upper
# Permutation test to calculate p value
=c(D_data_Small_pop$rel_m_pFec,D_data_Large_pop$rel_m_pFec)
comb_data
= var(na.omit((D_data_Large_pop$rel_m_pFec))) -var(na.omit((D_data_Small_pop$rel_m_pFec)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Small_pop$rel_m_pFec)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Large_pop$rel_m_pFec)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_pop_mFec_p
### Female treatment comparisons ####
#### Mating success (MS) ####
# Arena size
=c(Small_arena_F_fMS_bootvar$t)-c(Large_arena_F_fMS_bootvar$t)
Treat_diff_Female_arena_fMS
=mean(Treat_diff_Female_arena_fMS,na.rm=TRUE)
t_Treat_diff_Female_arena_fMS=quantile(Treat_diff_Female_arena_fMS,.025,na.rm=TRUE)
t_Treat_diff_Female_arena_fMS_lower=quantile(Treat_diff_Female_arena_fMS,.975,na.rm=TRUE)
t_Treat_diff_Female_arena_fMS_upper
# Permutation test to calculate p value
=c(D_data_Large_arena$rel_f_cMS,D_data_Small_arena$rel_f_cMS)
comb_data
= var(na.omit((D_data_Small_arena$rel_f_cMS)))-var(na.omit((D_data_Large_arena$rel_f_cMS)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Large_arena$rel_f_cMS)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Small_arena$rel_f_cMS)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Female_arena_fMS_p
# Population size
=c(Large_pop_F_fMS_bootvar$t)-c(Small_pop_F_fMS_bootvar$t)
Treat_diff_Female_pop_fMS
=mean(Treat_diff_Female_pop_fMS,na.rm=TRUE)
t_Treat_diff_Female_pop_fMS=quantile(Treat_diff_Female_pop_fMS,.025,na.rm=TRUE)
t_Treat_diff_Female_pop_fMS_lower=quantile(Treat_diff_Female_pop_fMS,.975,na.rm=TRUE)
t_Treat_diff_Female_pop_fMS_upper
# Permutation test to calculate p value
=c(D_data_Small_pop$rel_f_cMS,D_data_Large_pop$rel_f_cMS)
comb_data
= var(na.omit((D_data_Large_pop$rel_f_cMS)))-var(na.omit((D_data_Small_pop$rel_f_cMS)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Small_pop$rel_f_cMS)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Large_pop$rel_f_cMS)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Female_pop_fMS_p
#### Fecundity (Fec) ####
# Arena size
=c(Small_arena_F_fFec_bootvar$t)-c(Large_arena_F_fFec_bootvar$t)
Treat_diff_Female_arena_fFec
=mean(Treat_diff_Female_arena_fFec,na.rm=TRUE)
t_Treat_diff_Female_arena_fFec=quantile(Treat_diff_Female_arena_fFec,.025,na.rm=TRUE)
t_Treat_diff_Female_arena_fFec_lower=quantile(Treat_diff_Female_arena_fFec,.975,na.rm=TRUE)
t_Treat_diff_Female_arena_fFec_upper
# Permutation test to calculate p value
=c(D_data_Large_arena$rel_f_fec_pMate,D_data_Small_arena$rel_f_fec_pMate)
comb_data
= var(na.omit((D_data_Small_arena$rel_f_fec_pMate)))-var(na.omit((D_data_Large_arena$rel_f_fec_pMate)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Large_arena$rel_f_fec_pMate)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Small_arena$rel_f_fec_pMate)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Female_arena_fFec_p
# Population size
=c(Large_pop_F_fFec_bootvar$t)-c(Small_pop_F_fFec_bootvar$t)
Treat_diff_Female_pop_fFec
=mean(Treat_diff_Female_pop_fFec,na.rm=TRUE)
t_Treat_diff_Female_pop_fFec=quantile(Treat_diff_Female_pop_fFec,.025,na.rm=TRUE)
t_Treat_diff_Female_pop_fFec_lower=quantile(Treat_diff_Female_pop_fFec,.975,na.rm=TRUE)
t_Treat_diff_Female_pop_fFec_upper
# Permutation test to calculate p value
=c(D_data_Small_pop$rel_f_fec_pMate,D_data_Large_pop$rel_f_fec_pMate)
comb_data
= var(na.omit((D_data_Large_pop$rel_f_fec_pMate)))-var(na.omit((D_data_Small_pop$rel_f_fec_pMate)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Small_pop$rel_f_fec_pMate)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Large_pop$rel_f_fec_pMate)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(b.random)) - var(na.omit(a.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Female_pop_fFec_p
## Treatment comparisons covariances ####
#### mMS vs PS ####
# Arena size
=c(Small_arena_M_cov_mMS_PS_bootvar$t)-c(Large_arena_M_cov_mMS_PS_bootvar$t)
Treat_diff_Male_arena_cov_mMS_PS
=mean(Treat_diff_Male_arena_cov_mMS_PS,na.rm=TRUE)
t_Treat_diff_Male_arena_cov_mMS_PS=quantile(Treat_diff_Male_arena_cov_mMS_PS,.025,na.rm=TRUE)
t_Treat_diff_Male_arena_cov_mMS_PS_lower=quantile(Treat_diff_Male_arena_cov_mMS_PS,.975,na.rm=TRUE)
t_Treat_diff_Male_arena_cov_mMS_PS_upper
# Permutation test to calculate p value
=c(D_data_Large_arena$rel_m_cMS,D_data_Small_arena$rel_m_cMS)
comb_data=c(D_data_Large_arena$rel_m_PS,D_data_Small_arena$rel_m_PS)
comb_data2
= 2* cov(((D_data_Small_arena$rel_m_cMS)),((D_data_Small_arena$rel_m_PS)), use = 'pairwise.complete.obs')-2*cov(((D_data_Large_arena$rel_m_cMS)),((D_data_Large_arena$rel_m_PS)), use = 'pairwise.complete.obs')
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample ( (comb_data), length(c(D_data_Large_arena$rel_m_cMS)), TRUE)
a.random = sample ( (comb_data), length(c(D_data_Small_arena$rel_m_cMS)), TRUE)
b.random = sample ( (comb_data2), length(c(D_data_Large_arena$rel_m_PS)), TRUE)
c.random = sample ( (comb_data2), length(c(D_data_Small_arena$rel_m_PS)), TRUE)
d.random # Null (permuated) difference
= 2* cov( (a.random), (c.random), use = 'pairwise.complete.obs')-2*cov( (b.random), (d.random), use = 'pairwise.complete.obs')
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_arena_cov_mMS_PS_p
# Population size
=c(Large_pop_M_cov_mMS_PS_bootvar$t)-c(Small_pop_M_cov_mMS_PS_bootvar$t)
Treat_diff_Male_pop_cov_mMS_PS
=mean(Treat_diff_Male_pop_cov_mMS_PS,na.rm=TRUE)
t_Treat_diff_Male_pop_cov_mMS_PS=quantile(Treat_diff_Male_pop_cov_mMS_PS,.025,na.rm=TRUE)
t_Treat_diff_Male_pop_cov_mMS_PS_lower=quantile(Treat_diff_Male_pop_cov_mMS_PS,.975,na.rm=TRUE)
t_Treat_diff_Male_pop_cov_mMS_PS_upper
# Permutation test to calculate p value
=c(D_data_Large_pop$rel_m_cMS,D_data_Small_pop$rel_m_cMS)
comb_data=c(D_data_Large_pop$rel_m_PS,D_data_Small_pop$rel_m_PS)
comb_data2
= 2*cov( ((D_data_Large_pop$rel_m_cMS)), ((D_data_Large_pop$rel_m_PS)), use = 'pairwise.complete.obs')-2*cov( ((D_data_Small_pop$rel_m_cMS)), ((D_data_Small_pop$rel_m_PS)), use = 'pairwise.complete.obs')
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample ( (comb_data), length(c(D_data_Large_pop$rel_m_cMS)), TRUE)
a.random = sample ( (comb_data), length(c(D_data_Small_pop$rel_m_cMS)), TRUE)
b.random = sample ( (comb_data2), length(c(D_data_Large_pop$rel_m_PS)), TRUE)
c.random = sample ( (comb_data2), length(c(D_data_Small_pop$rel_m_PS)), TRUE)
d.random # Null (permuated) difference
= 2*cov( (b.random), (d.random), use = 'pairwise.complete.obs')- 2*cov( (a.random), (c.random), use = 'pairwise.complete.obs')
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_pop_cov_mMS_PS_p
### mMS vs pFec ####
# Arena size
=c(Small_arena_M_cov_mMS_pFec_bootvar$t)-c(Large_arena_M_cov_mMS_pFec_bootvar$t)
Treat_diff_Male_arena_cov_mMS_pFec
=mean(Treat_diff_Male_arena_cov_mMS_pFec,na.rm=TRUE)
t_Treat_diff_Male_arena_cov_mMS_pFec=quantile(Treat_diff_Male_arena_cov_mMS_pFec,.025,na.rm=TRUE)
t_Treat_diff_Male_arena_cov_mMS_pFec_lower=quantile(Treat_diff_Male_arena_cov_mMS_pFec,.975,na.rm=TRUE)
t_Treat_diff_Male_arena_cov_mMS_pFec_upper
# Permutation test to calculate p value
=c(D_data_Large_arena$rel_m_cMS,D_data_Small_arena$rel_m_cMS)
comb_data=c(D_data_Large_arena$rel_m_pFec,D_data_Small_arena$rel_m_pFec)
comb_data2
= 2* cov(((D_data_Small_arena$rel_m_cMS)),((D_data_Small_arena$rel_m_pFec)), use = 'pairwise.complete.obs')-2*cov(((D_data_Large_arena$rel_m_cMS)),((D_data_Large_arena$rel_m_pFec)), use = 'pairwise.complete.obs')
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample ( (comb_data), length(c(D_data_Large_arena$rel_m_cMS)), TRUE)
a.random = sample ( (comb_data), length(c(D_data_Small_arena$rel_m_cMS)), TRUE)
b.random = sample ( (comb_data2), length(c(D_data_Large_arena$rel_m_pFec)), TRUE)
c.random = sample ( (comb_data2), length(c(D_data_Small_arena$rel_m_pFec)), TRUE)
d.random # Null (permuated) difference
= 2* cov( (a.random), (c.random), use = 'pairwise.complete.obs')-2*cov( (b.random), (d.random), use = 'pairwise.complete.obs')
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_arena_cov_mMS_pFec_p
# Population size
=c(Large_pop_M_cov_mMS_pFec_bootvar$t)-c(Small_pop_M_cov_mMS_pFec_bootvar$t)
Treat_diff_Male_pop_cov_mMS_pFec
=mean(Treat_diff_Male_pop_cov_mMS_pFec,na.rm=TRUE)
t_Treat_diff_Male_pop_cov_mMS_pFec=quantile(Treat_diff_Male_pop_cov_mMS_pFec,.025,na.rm=TRUE)
t_Treat_diff_Male_pop_cov_mMS_pFec_lower=quantile(Treat_diff_Male_pop_cov_mMS_pFec,.975,na.rm=TRUE)
t_Treat_diff_Male_pop_cov_mMS_pFec_upper
# Permutation test to calculate p value
=c(D_data_Large_pop$rel_m_cMS,D_data_Small_pop$rel_m_cMS)
comb_data=c(D_data_Large_pop$rel_m_pFec,D_data_Small_pop$rel_m_pFec)
comb_data2
= 2*cov( ((D_data_Large_pop$rel_m_cMS)), ((D_data_Large_pop$rel_m_pFec)), use = 'pairwise.complete.obs')-2*cov( ((D_data_Small_pop$rel_m_cMS)), ((D_data_Small_pop$rel_m_pFec)), use = 'pairwise.complete.obs')
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample ( (comb_data), length(c(D_data_Large_pop$rel_m_cMS)), TRUE)
a.random = sample ( (comb_data), length(c(D_data_Small_pop$rel_m_cMS)), TRUE)
b.random = sample ( (comb_data2), length(c(D_data_Large_pop$rel_m_pFec)), TRUE)
c.random = sample ( (comb_data2), length(c(D_data_Small_pop$rel_m_pFec)), TRUE)
d.random # Null (permuated) difference
= 2*cov( (b.random), (d.random), use = 'pairwise.complete.obs')- 2*cov( (a.random), (c.random), use = 'pairwise.complete.obs')
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_pop_cov_mMS_pFec_p
### PS vs pFec ####
# Arena size
=c(Small_arena_M_cov_PS_pFec_bootvar$t)-c(Large_arena_M_cov_PS_pFec_bootvar$t)
Treat_diff_Male_arena_cov_PS_pFec
=mean(Treat_diff_Male_arena_cov_PS_pFec,na.rm=TRUE)
t_Treat_diff_Male_arena_cov_PS_pFec=quantile(Treat_diff_Male_arena_cov_PS_pFec,.025,na.rm=TRUE)
t_Treat_diff_Male_arena_cov_PS_pFec_lower=quantile(Treat_diff_Male_arena_cov_PS_pFec,.975,na.rm=TRUE)
t_Treat_diff_Male_arena_cov_PS_pFec_upper
#Permutation test to calculate p value
=c(D_data_Large_arena$rel_m_cMS,D_data_Small_arena$rel_m_cMS)
comb_data=c(D_data_Large_arena$rel_m_pFec,D_data_Small_arena$rel_m_pFec)
comb_data2
= 2* cov(((D_data_Small_arena$rel_m_cMS)),((D_data_Small_arena$rel_m_pFec)), use = 'pairwise.complete.obs')-2*cov(((D_data_Large_arena$rel_m_cMS)),((D_data_Large_arena$rel_m_pFec)), use = 'pairwise.complete.obs')
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample ( (comb_data), length(c(D_data_Large_arena$rel_m_cMS)), TRUE)
a.random = sample ( (comb_data), length(c(D_data_Small_arena$rel_m_cMS)), TRUE)
b.random = sample ( (comb_data2), length(c(D_data_Large_arena$rel_m_pFec)), TRUE)
c.random = sample ( (comb_data2), length(c(D_data_Small_arena$rel_m_pFec)), TRUE)
d.random # Null (permuated) difference
= 2* cov( (a.random), (c.random), use = 'pairwise.complete.obs')-2*cov( (b.random), (d.random), use = 'pairwise.complete.obs')
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_arena_cov_PS_pFec_p
# Population size
=c(Large_pop_M_cov_PS_pFec_bootvar$t)-c(Small_pop_M_cov_PS_pFec_bootvar$t)
Treat_diff_Male_pop_cov_PS_pFec
=mean(Treat_diff_Male_pop_cov_PS_pFec,na.rm=TRUE)
t_Treat_diff_Male_pop_cov_PS_pFec=quantile(Treat_diff_Male_pop_cov_PS_pFec,.025,na.rm=TRUE)
t_Treat_diff_Male_pop_cov_PS_pFec_lower=quantile(Treat_diff_Male_pop_cov_PS_pFec,.975,na.rm=TRUE)
t_Treat_diff_Male_pop_cov_PS_pFec_upper
# Permutation test to calculate p value
=c(D_data_Large_pop$rel_m_cMS,D_data_Small_pop$rel_m_cMS)
comb_data=c(D_data_Large_pop$rel_m_pFec,D_data_Small_pop$rel_m_pFec)
comb_data2
= 2*cov( ((D_data_Large_pop$rel_m_cMS)), ((D_data_Large_pop$rel_m_pFec)), use = 'pairwise.complete.obs')-2*cov( ((D_data_Small_pop$rel_m_cMS)), ((D_data_Small_pop$rel_m_pFec)), use = 'pairwise.complete.obs')
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample ( (comb_data), length(c(D_data_Large_pop$rel_m_cMS)), TRUE)
a.random = sample ( (comb_data), length(c(D_data_Small_pop$rel_m_cMS)), TRUE)
b.random = sample ( (comb_data2), length(c(D_data_Large_pop$rel_m_pFec)), TRUE)
c.random = sample ( (comb_data2), length(c(D_data_Small_pop$rel_m_pFec)), TRUE)
d.random # Null (permuated) difference
= 2*cov( (b.random), (d.random), use = 'pairwise.complete.obs')- 2*cov( (a.random), (c.random), use = 'pairwise.complete.obs')
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_pop_cov_PS_pFec_p
### Extract data and write results table ####
<- as.data.frame(cbind("Male", "Arena size", "MS", t_Treat_diff_Male_arena_mMS, t_Treat_diff_Male_arena_mMS_lower, t_Treat_diff_Male_arena_mMS_upper, t_Treat_diff_Male_arena_mMS_p))
CompTreat_Table_Male_arena_mMS names(CompTreat_Table_Male_arena_mMS)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Arena size", "PS", t_Treat_diff_Male_arena_mPS, t_Treat_diff_Male_arena_mPS_lower, t_Treat_diff_Male_arena_mPS_upper, t_Treat_diff_Male_arena_mPS_p))
CompTreat_Table_Male_arena_mPS names(CompTreat_Table_Male_arena_mPS)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Arena size", "pFec", t_Treat_diff_Male_arena_mFec, t_Treat_diff_Male_arena_mFec_lower, t_Treat_diff_Male_arena_mFec_upper, t_Treat_diff_Male_arena_mFec_p))
CompTreat_Table_Male_arena_mFec names(CompTreat_Table_Male_arena_mFec)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Female", "Arena size", "MS", t_Treat_diff_Female_arena_fMS, t_Treat_diff_Female_arena_fMS_lower, t_Treat_diff_Female_arena_fMS_upper, t_Treat_diff_Female_arena_fMS_p))
CompTreat_Table_Female_arena_fMS names(CompTreat_Table_Female_arena_fMS)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Female", "Arena size", "Fec", t_Treat_diff_Female_arena_fFec, t_Treat_diff_Female_arena_fFec_lower, t_Treat_diff_Female_arena_fFec_upper, t_Treat_diff_Female_arena_fFec_p))
CompTreat_Table_Female_arena_fFec names(CompTreat_Table_Female_arena_fFec)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Population size", "MS", t_Treat_diff_Male_pop_mMS, t_Treat_diff_Male_pop_mMS_lower, t_Treat_diff_Male_pop_mMS_upper, t_Treat_diff_Male_pop_mMS_p))
CompTreat_Table_Male_pop_mMS names(CompTreat_Table_Male_pop_mMS)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Population size", "PS", t_Treat_diff_Male_pop_mPS, t_Treat_diff_Male_pop_mPS_lower, t_Treat_diff_Male_pop_mPS_upper, t_Treat_diff_Male_pop_mPS_p))
CompTreat_Table_Male_pop_mPS names(CompTreat_Table_Male_pop_mPS)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Population size", "pFec", t_Treat_diff_Male_pop_mFec, t_Treat_diff_Male_pop_mFec_lower, t_Treat_diff_Male_pop_mFec_upper, t_Treat_diff_Male_pop_mFec_p))
CompTreat_Table_Male_pop_mFec names(CompTreat_Table_Male_pop_mFec)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Female", "Population size", "MS", t_Treat_diff_Female_pop_fMS, t_Treat_diff_Female_pop_fMS_lower, t_Treat_diff_Female_pop_fMS_upper, t_Treat_diff_Female_pop_fMS_p))
CompTreat_Table_Female_pop_fMS names(CompTreat_Table_Female_pop_fMS)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Female", "Population size", "Fec", t_Treat_diff_Female_pop_fFec, t_Treat_diff_Female_pop_fFec_lower, t_Treat_diff_Female_pop_fFec_upper, t_Treat_diff_Female_pop_fFec_p))
CompTreat_Table_Female_pop_fFec names(CompTreat_Table_Female_pop_fFec)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Arena size", "covMS_PS", t_Treat_diff_Male_arena_cov_mMS_PS, t_Treat_diff_Male_arena_cov_mMS_PS_lower, t_Treat_diff_Male_arena_cov_mMS_PS_upper, t_Treat_diff_Male_arena_cov_mMS_PS_p))
CompTreat_Treat_diff_Male_arena_cov_mMS_PS names(CompTreat_Treat_diff_Male_arena_cov_mMS_PS)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Population size", "covMS_PS", t_Treat_diff_Male_pop_cov_mMS_PS, t_Treat_diff_Male_pop_cov_mMS_PS_lower, t_Treat_diff_Male_pop_cov_mMS_PS_upper, t_Treat_diff_Male_pop_cov_mMS_PS_p))
CompTreat_Treat_diff_Male_pop_cov_mMS_PS names(CompTreat_Treat_diff_Male_pop_cov_mMS_PS)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Arena size", "covMS_pFec", t_Treat_diff_Male_arena_cov_mMS_pFec, t_Treat_diff_Male_arena_cov_mMS_pFec_lower, t_Treat_diff_Male_arena_cov_mMS_pFec_upper, t_Treat_diff_Male_arena_cov_mMS_pFec_p))
CompTreat_Treat_diff_Male_arena_cov_mMS_pFec names(CompTreat_Treat_diff_Male_arena_cov_mMS_pFec)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Population size", "covMS_pFec", t_Treat_diff_Male_pop_cov_mMS_pFec, t_Treat_diff_Male_pop_cov_mMS_pFec_lower, t_Treat_diff_Male_pop_cov_mMS_pFec_upper, t_Treat_diff_Male_pop_cov_mMS_pFec_p))
CompTreat_Treat_diff_Male_pop_cov_mMS_pFec names(CompTreat_Treat_diff_Male_pop_cov_mMS_pFec)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Arena size", "covPS_pFec", t_Treat_diff_Male_arena_cov_PS_pFec, t_Treat_diff_Male_arena_cov_PS_pFec_lower, t_Treat_diff_Male_arena_cov_PS_pFec_upper, t_Treat_diff_Male_arena_cov_PS_pFec_p))
CompTreat_Treat_diff_Male_arena_cov_PS_pFec names(CompTreat_Treat_diff_Male_arena_cov_PS_pFec)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Population size", "covPS_pFec", t_Treat_diff_Male_pop_cov_PS_pFec, t_Treat_diff_Male_pop_cov_PS_pFec_lower, t_Treat_diff_Male_pop_cov_PS_pFec_upper, t_Treat_diff_Male_pop_cov_PS_pFec_p))
CompTreat_Treat_diff_Male_pop_cov_PS_pFec names(CompTreat_Treat_diff_Male_pop_cov_PS_pFec)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(as.matrix(rbind(CompTreat_Table_Male_pop_mMS,CompTreat_Table_Male_arena_mMS,
Table_VarianceDecomposition_TreatComp
CompTreat_Table_Male_pop_mPS,CompTreat_Table_Male_arena_mPS,
CompTreat_Table_Male_pop_mFec,CompTreat_Table_Male_arena_mFec,
CompTreat_Table_Female_pop_fMS,CompTreat_Table_Female_arena_fMS,
CompTreat_Table_Female_pop_fFec,CompTreat_Table_Female_arena_fFec,
CompTreat_Treat_diff_Male_pop_cov_mMS_PS,CompTreat_Treat_diff_Male_arena_cov_mMS_PS,
CompTreat_Treat_diff_Male_pop_cov_mMS_pFec,CompTreat_Treat_diff_Male_arena_cov_mMS_pFec,
CompTreat_Treat_diff_Male_pop_cov_PS_pFec,CompTreat_Treat_diff_Male_arena_cov_PS_pFec)))
colnames(Table_VarianceDecomposition_TreatComp)[1] <- "Sex"
colnames(Table_VarianceDecomposition_TreatComp)[2] <- "Treatment"
colnames(Table_VarianceDecomposition_TreatComp)[3] <- "Variance_component"
colnames(Table_VarianceDecomposition_TreatComp)[4] <- "Variance"
colnames(Table_VarianceDecomposition_TreatComp)[5] <- "l95_CI"
colnames(Table_VarianceDecomposition_TreatComp)[6] <- "u95_CI"
colnames(Table_VarianceDecomposition_TreatComp)[7] <- "p-value"
4]=round(as.numeric(Table_VarianceDecomposition_TreatComp[,4]),digits=2)
Table_VarianceDecomposition_TreatComp[,5]=round(as.numeric(Table_VarianceDecomposition_TreatComp[,5]),digits=2)
Table_VarianceDecomposition_TreatComp[,6]=round(as.numeric(Table_VarianceDecomposition_TreatComp[,6]),digits=2)
Table_VarianceDecomposition_TreatComp[,7]=round(as.numeric(Table_VarianceDecomposition_TreatComp[,7]),digits=3)
Table_VarianceDecomposition_TreatComp[,rownames(Table_VarianceDecomposition_TreatComp) <- c()
Table 6: Influence of density treatment (group and arena size) on the variance components of mating success (MS), fecundity (Fec) and their covariance for females and into mating success (MS), paternity share (PS), partner fecundity (pFec) and their covariances for males estimated via permutation tests. Negative effect sizes indicate larger values at lower density and positive effect sizes larger values at higher density.
kable(PhenVarBoot_Table_plot)
Sex | Cov_component | Treatment | Variance | l95_CI | u95_CI |
---|---|---|---|---|---|
Male | MS | Small population size | 0.22 | 0.14 | 0.31 |
Male | MS | Large population size | 0.39 | 0.24 | 0.57 |
Male | MS | Large arena size | 0.36 | 0.22 | 0.54 |
Male | MS | Small arena size | 0.25 | 0.16 | 0.37 |
Male | PS | Small population size | 0.20 | 0.14 | 0.28 |
Male | PS | Large population size | 0.37 | 0.27 | 0.46 |
Male | PS | Large arena size | 0.33 | 0.24 | 0.41 |
Male | PS | Small arena size | 0.25 | 0.17 | 0.35 |
Male | pFec | Small population size | 0.10 | 0.05 | 0.17 |
Male | pFec | Large population size | 0.08 | 0.03 | 0.13 |
Male | pFec | Large arena size | 0.08 | 0.04 | 0.14 |
Male | pFec | Small arena size | 0.09 | 0.04 | 0.16 |
Male | cov_mMS_PS | Small population size | -0.13 | -0.25 | -0.01 |
Male | cov_mMS_PS | Large population size | -0.31 | -0.50 | -0.13 |
Male | cov_mMS_PS | Large arena size | -0.31 | -0.50 | -0.15 |
Male | cov_mMS_PS | Small arena size | -0.13 | -0.27 | 0.01 |
Male | cov_mMS_pFec | Small population size | 0.05 | -0.03 | 0.15 |
Male | cov_mMS_pFec | Large population size | 0.01 | -0.08 | 0.09 |
Male | cov_mMS_pFec | Large arena size | 0.01 | -0.08 | 0.10 |
Male | cov_mMS_pFec | Small arena size | 0.05 | -0.03 | 0.14 |
Male | cov_PS_pFec | Small population size | -0.03 | -0.15 | 0.07 |
Male | cov_PS_pFec | Large population size | -0.08 | -0.21 | 0.03 |
Male | cov_PS_pFec | Large arena size | -0.03 | -0.15 | 0.07 |
Male | cov_PS_pFec | Small arena size | -0.08 | -0.22 | 0.03 |
Female | fMS | Small population size | 0.26 | 0.18 | 0.34 |
Female | fMS | Large population size | 0.60 | 0.38 | 0.84 |
Female | fMS | Large arena size | 0.34 | 0.21 | 0.50 |
Female | fMS | Small arena size | 0.49 | 0.32 | 0.70 |
Female | fFec | Small population size | 1.10 | 0.65 | 1.61 |
Female | fFec | Large population size | 0.79 | 0.47 | 1.16 |
Female | fFec | Large arena size | 1.09 | 0.61 | 1.63 |
Female | fFec | Small arena size | 0.83 | 0.54 | 1.14 |
Female | cov_fMS_fFec | Small population size | -0.22 | -0.50 | 0.04 |
Female | cov_fMS_fFec | Large population size | -0.13 | -0.52 | 0.22 |
Female | cov_fMS_fFec | Large arena size | -0.08 | -0.40 | 0.20 |
Female | cov_fMS_fFec | Small arena size | -0.31 | -0.61 | -0.02 |
In addition, we partitioned the variance in paternity share into the variance in insemination success (proportion of mating partners that have been inseminated successfully in terms of at least one shared offspring; IS) and fertilization success (proportion of offspring sired from each successfully inseminated mating partner; FS). Hence, while PS is an estimate for the total opportunity for post-copulatory sexual selection, IS gives the opportunity for sexual selection on the ability of males to inseminate females and FS the opportunity for sexual selection on males to outcompete rivals in sperm competition.
## Decompose male paternity success into insemination and fertilization success ####
### Insemination success (IS) ####
# Large arena size
<-as.data.table(D_data_Large_arena$rel_m_InSuc)
D_data_Large_arena_M_InSuc_n <- function(d, i){
c <- d[i,]
d2 return(var(d2[,1], na.rm=TRUE))
}<- boot(D_data_Large_arena_M_InSuc_n, c, R=10000)
Large_arena_M_InSuc_bootvar
# Small arena size
<-as.data.table(D_data_Small_arena$rel_m_InSuc)
D_data_Small_arena_M_InSuc_n
<- boot(D_data_Small_arena_M_InSuc_n, c, R=10000)
Small_arena_M_InSuc_bootvar
# Small group size
<-as.data.table(D_data_Small_pop$rel_m_InSuc)
D_data_Small_pop_M_InSuc_n
<- boot(D_data_Small_pop_M_InSuc_n, c, R=10000)
Small_pop_M_InSuc_bootvar
# Large group size
<-as.data.table(D_data_Large_pop$rel_m_InSuc)
D_data_Large_pop_M_InSuc_n
<- boot(D_data_Large_pop_M_InSuc_n, c, R=10000)
Large_pop_M_InSuc_bootvar rm("c")
### Fertilization success (FS) ####
# Large arena size
<-as.data.table(D_data_Large_arena$rel_m_feSuc)
D_data_Large_arena_M_feSuc_n <- function(d, i){
c <- d[i,]
d2 return(var(d2$V1, na.rm=TRUE))
}<- boot(D_data_Large_arena_M_feSuc_n, c, R=10000)
Large_arena_M_feSuc_bootvar
# Small arena size
<-as.data.table(D_data_Small_arena$rel_m_feSuc)
D_data_Small_arena_M_feSuc_n
<- boot(D_data_Small_arena_M_feSuc_n, c, R=10000)
Small_arena_M_feSuc_bootvar
# Small group size
<-as.data.table(D_data_Small_pop$rel_m_feSuc)
D_data_Small_pop_M_feSuc_n
<- boot(D_data_Small_pop_M_feSuc_n, c, R=10000)
Small_pop_M_feSuc_bootvar
# Large group size
<-as.data.table(D_data_Large_pop$rel_m_feSuc)
D_data_Large_pop_M_feSuc_n
<- boot(D_data_Large_pop_M_feSuc_n, c, R=10000)
Large_pop_M_feSuc_bootvar rm("c")
### Extract data and write results table ####
<- as.data.frame(cbind("Male", "IS", "Large arena size", mean(Large_arena_M_InSuc_bootvar$t), quantile(Large_arena_M_InSuc_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_InSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_InSuc <- as.data.frame(cbind("Male", "IS", "Small arena size", mean(Small_arena_M_InSuc_bootvar$t), quantile(Small_arena_M_InSuc_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_InSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_InSuc <- as.data.frame(cbind("Male", "IS", "Small population size", mean(Small_pop_M_InSuc_bootvar$t), quantile(Small_pop_M_InSuc_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_InSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_InSuc <- as.data.frame(cbind("Male", "IS", "Large population size", mean(Large_pop_M_InSuc_bootvar$t), quantile(Large_pop_M_InSuc_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_InSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_InSuc
<- as.data.frame(cbind("Male", "FS", "Large arena size", mean(Large_arena_M_feSuc_bootvar$t), quantile(Large_arena_M_feSuc_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_feSuc <- as.data.frame(cbind("Male", "FS", "Small arena size", mean(Small_arena_M_feSuc_bootvar$t), quantile(Small_arena_M_feSuc_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_feSuc <- as.data.frame(cbind("Male", "FS", "Small population size", mean(Small_pop_M_feSuc_bootvar$t), quantile(Small_pop_M_feSuc_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_feSuc <- as.data.frame(cbind("Male", "FS", "Large population size", mean(Large_pop_M_feSuc_bootvar$t), quantile(Large_pop_M_feSuc_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_feSuc
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Small_pop_MS,PhenVarBoot_Table_Male_Large_pop_MS,
PhenVarBoot_Table
PhenVarBoot_Table_Male_Large_arena_MS,PhenVarBoot_Table_Male_Small_arena_MS,
PhenVarBoot_Table_Male_Small_pop_InSuc,PhenVarBoot_Table_Male_Large_pop_InSuc,
PhenVarBoot_Table_Male_Large_arena_InSuc,PhenVarBoot_Table_Male_Small_arena_InSuc,
PhenVarBoot_Table_Male_Small_pop_feSuc,PhenVarBoot_Table_Male_Large_pop_feSuc,
PhenVarBoot_Table_Male_Large_arena_feSuc,PhenVarBoot_Table_Male_Small_arena_feSuc,
PhenVarBoot_Table_Male_Small_pop_pFec,PhenVarBoot_Table_Male_Large_pop_pFec,
PhenVarBoot_Table_Male_Large_arena_pFec,PhenVarBoot_Table_Male_Small_arena_pFec,
PhenVarBoot_Table_Female_Small_pop_fMS,PhenVarBoot_Table_Female_Large_pop_fMS,
PhenVarBoot_Table_Female_Large_arena_fMS,PhenVarBoot_Table_Female_Small_arena_fMS,
PhenVarBoot_Table_Female_Small_pop_fFec,PhenVarBoot_Table_Female_Large_pop_fFec,
PhenVarBoot_Table_Female_Large_arena_fFec,PhenVarBoot_Table_Female_Small_arena_fFec)))
is.table(PhenVarBoot_Table)
colnames(PhenVarBoot_Table)[1] <- "Sex"
colnames(PhenVarBoot_Table)[2] <- "Variance_component"
colnames(PhenVarBoot_Table)[3] <- "Treatment"
colnames(PhenVarBoot_Table)[4] <- "Variance"
colnames(PhenVarBoot_Table)[5] <- "l95_CI"
colnames(PhenVarBoot_Table)[6] <- "u95_CI"
4]=round(as.numeric(PhenVarBoot_Table[,4]),digits=2)
PhenVarBoot_Table[,5]=round(as.numeric(PhenVarBoot_Table[,5]),digits=2)
PhenVarBoot_Table[,6]=round(as.numeric(PhenVarBoot_Table[,6]),digits=2)
PhenVarBoot_Table[,rownames(PhenVarBoot_Table) <- c()
Table S10 (Part 1): Variances of variance decomposition of reproductive success into mating success (MS), insemination success (IS), fertilization success (FS) and partner fecundity (pFec) for males for group and arena size treatment given with mean and 95%CI estimated via bootstrapping.
kable(PhenVarBoot_Table)
Sex | Variance_component | Treatment | Variance | l95_CI | u95_CI |
---|---|---|---|---|---|
Male | MS | Small population size | 0.22 | 0.14 | 0.31 |
Male | MS | Large population size | 0.39 | 0.24 | 0.57 |
Male | MS | Large arena size | 0.36 | 0.22 | 0.54 |
Male | MS | Small arena size | 0.25 | 0.16 | 0.37 |
Male | IS | Small population size | 0.39 | 0.28 | 0.48 |
Male | IS | Large population size | 0.37 | 0.27 | 0.46 |
Male | IS | Large arena size | 0.33 | 0.23 | 0.41 |
Male | IS | Small arena size | 0.43 | 0.32 | 0.53 |
Male | FS | Small population size | 0.11 | 0.07 | 0.16 |
Male | FS | Large population size | 0.24 | 0.17 | 0.31 |
Male | FS | Large arena size | 0.20 | 0.15 | 0.26 |
Male | FS | Small arena size | 0.15 | 0.09 | 0.23 |
Male | pFec | Small population size | 0.10 | 0.05 | 0.17 |
Male | pFec | Large population size | 0.08 | 0.03 | 0.13 |
Male | pFec | Large arena size | 0.08 | 0.04 | 0.14 |
Male | pFec | Small arena size | 0.09 | 0.04 | 0.16 |
Female | fMS | Small population size | 0.26 | 0.18 | 0.34 |
Female | fMS | Large population size | 0.60 | 0.38 | 0.84 |
Female | fMS | Large arena size | 0.34 | 0.21 | 0.50 |
Female | fMS | Small arena size | 0.49 | 0.32 | 0.70 |
Female | fFec | Small population size | 1.10 | 0.65 | 1.61 |
Female | fFec | Large population size | 0.79 | 0.47 | 1.16 |
Female | fFec | Large arena size | 1.09 | 0.61 | 1.63 |
Female | fFec | Small arena size | 0.83 | 0.54 | 1.14 |
Here we compute the covariances for insemination success and fertilization success.
## Compute covariance matrices for IS and FS ####
# Large arena size
# Covariance MS x IS
=as.data.frame(cbind(D_data_Large_arena_M_MS_n,D_data_Large_arena_M_InSuc_n))
x5<- function(d, i){
c <- d[i,]
d2 return(2*cov(d2[1],d2[2],use='pairwise.complete.obs'))
}<- boot(x5, c, R=10000)
Large_arena_M_cov_mMS_inSuc_bootvar
# Covariance MS x FS
=as.data.frame(cbind(D_data_Large_arena_M_MS_n,D_data_Large_arena_M_feSuc_n))
x6
<- boot(x6, c, R=10000)
Large_arena_M_cov_mMS_feSuc_bootvar
# Covariance IS x FS
=as.data.frame(cbind(D_data_Large_arena_M_InSuc_n,D_data_Large_arena_M_feSuc_n))
x8
<- boot(x8, c, R=10000)
Large_arena_M_cov_inSuc_feSuc_bootvar
# Covariance IS x pFec
=as.data.frame(cbind(D_data_Large_arena_M_InSuc_n,D_data_Large_arena_M_pFec_n))
x9
<- boot(x9, c, R=10000)
Large_arena_M_cov_inSuc_pFec_bootvar
# Covariance FS x pFec
=as.data.frame(cbind(D_data_Large_arena_M_feSuc_n,D_data_Large_arena_M_pFec_n))
x10
<- boot(x10, c, R=10000)
Large_arena_M_cov_feSuc_pFec_bootvar
# Extract data and write results table
<- as.data.frame(cbind("Male", "cov_MS_IS", "Large arena size", mean(Large_arena_M_cov_mMS_inSuc_bootvar$t), quantile(Large_arena_M_cov_mMS_inSuc_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_cov_mMS_inSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_cov_mMS_inSuc <- as.data.frame(cbind("Male", "cov_MS_FS", "Large arena size", mean(Large_arena_M_cov_mMS_feSuc_bootvar$t), quantile(Large_arena_M_cov_mMS_feSuc_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_cov_mMS_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_cov_mMS_feSuc <- as.data.frame(cbind("Male", "cov_IS_FS", "Large arena size", mean(Large_arena_M_cov_inSuc_feSuc_bootvar$t), quantile(Large_arena_M_cov_inSuc_feSuc_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_cov_inSuc_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_cov_inSuc_feSuc <- as.data.frame(cbind("Male", "cov_IS_pFec", "Large arena size", mean(Large_arena_M_cov_inSuc_pFec_bootvar$t), quantile(Large_arena_M_cov_inSuc_pFec_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_cov_inSuc_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_cov_inSuc_pFec <- as.data.frame(cbind("Male", "cov_FS_pFec", "Large arena size", mean(Large_arena_M_cov_feSuc_pFec_bootvar$t), quantile(Large_arena_M_cov_feSuc_pFec_bootvar$t,.025, names = FALSE), quantile(Large_arena_M_cov_feSuc_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_arena_cov_feSuc_pFec
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Large_arena_cov_mMS_inSuc,PhenVarBoot_Table_Male_Large_arena_cov_mMS_feSuc,
PhenVarBoot_Cov_Table_Large_arena
PhenVarBoot_Table_Male_Large_arena_cov_mMS_pFec,PhenVarBoot_Table_Male_Large_arena_cov_inSuc_feSuc,
PhenVarBoot_Table_Male_Large_arena_cov_inSuc_pFec,PhenVarBoot_Table_Male_Large_arena_cov_feSuc_pFec,digits=3)
PhenVarBoot_Table_Female_Large_arena_cov_fMS_fFec)),
is.table(PhenVarBoot_Cov_Table_Large_arena)
colnames(PhenVarBoot_Cov_Table_Large_arena)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_Large_arena)[2] <- "Cov_component"
colnames(PhenVarBoot_Cov_Table_Large_arena)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_Large_arena)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_Large_arena)[5] <- "l95_CI"
colnames(PhenVarBoot_Cov_Table_Large_arena)[6] <- "u95_CI"
4]=as.numeric(PhenVarBoot_Cov_Table_Large_arena[,4])
PhenVarBoot_Cov_Table_Large_arena[,5]=as.numeric(PhenVarBoot_Cov_Table_Large_arena[,5])
PhenVarBoot_Cov_Table_Large_arena[,6]=as.numeric(PhenVarBoot_Cov_Table_Large_arena[,6])
PhenVarBoot_Cov_Table_Large_arena[,
# Small arena
# Covariance MS x IS
=as.data.frame(cbind(D_data_Small_arena_M_MS_n,D_data_Small_arena_M_InSuc_n))
x5<- function(d, i){
c <- d[i,]
d2 return(2*cov(d2[1],d2[2],use='pairwise.complete.obs'))
}<- boot(x5, c, R=10000)
Small_arena_M_cov_mMS_inSuc_bootvar
# Covariance MS x FS
=as.data.frame(cbind(D_data_Small_arena_M_MS_n,D_data_Small_arena_M_feSuc_n))
x6
<- boot(x6, c, R=10000)
Small_arena_M_cov_mMS_feSuc_bootvar
# Covariance IS x FS
=as.data.frame(cbind(D_data_Small_arena_M_InSuc_n,D_data_Small_arena_M_feSuc_n))
x8
<- boot(x8, c, R=10000)
Small_arena_M_cov_inSuc_feSuc_bootvar
# Covariance IS x pFec
=as.data.frame(cbind(D_data_Small_arena_M_InSuc_n,D_data_Small_arena_M_pFec_n))
x9
<- boot(x9, c, R=10000)
Small_arena_M_cov_inSuc_pFec_bootvar
# Covariance FS x pFec
=as.data.frame(cbind(D_data_Small_arena_M_feSuc_n,D_data_Small_arena_M_pFec_n))
x10
<- boot(x10, c, R=10000)
Small_arena_M_cov_feSuc_pFec_bootvar
# Extract data and write results table
<- as.data.frame(cbind("Male", "cov_MS_IS", "Small arena size", mean(Small_arena_M_cov_mMS_inSuc_bootvar$t), quantile(Small_arena_M_cov_mMS_inSuc_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_cov_mMS_inSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_cov_mMS_inSuc <- as.data.frame(cbind("Male", "cov_MS_FS", "Small arena size", mean(Small_arena_M_cov_mMS_feSuc_bootvar$t), quantile(Small_arena_M_cov_mMS_feSuc_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_cov_mMS_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_cov_mMS_feSuc <- as.data.frame(cbind("Male", "cov_IS_FS", "Small arena size", mean(Small_arena_M_cov_inSuc_feSuc_bootvar$t), quantile(Small_arena_M_cov_inSuc_feSuc_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_cov_inSuc_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_cov_inSuc_feSuc <- as.data.frame(cbind("Male", "cov_IS_pFec", "Small arena size", mean(Small_arena_M_cov_inSuc_pFec_bootvar$t), quantile(Small_arena_M_cov_inSuc_pFec_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_cov_inSuc_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_cov_inSuc_pFec <- as.data.frame(cbind("Male", "cov_FS_pFec", "Small arena size", mean(Small_arena_M_cov_feSuc_pFec_bootvar$t), quantile(Small_arena_M_cov_feSuc_pFec_bootvar$t,.025, names = FALSE), quantile(Small_arena_M_cov_feSuc_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_arena_cov_feSuc_pFec
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Small_arena_cov_mMS_inSuc,PhenVarBoot_Table_Male_Small_arena_cov_mMS_feSuc,
PhenVarBoot_Cov_Table_Small_arena
PhenVarBoot_Table_Male_Small_arena_cov_mMS_pFec,PhenVarBoot_Table_Male_Small_arena_cov_inSuc_feSuc,
PhenVarBoot_Table_Male_Small_arena_cov_inSuc_pFec,PhenVarBoot_Table_Male_Small_arena_cov_feSuc_pFec,digits=3)
PhenVarBoot_Table_Female_Small_arena_cov_fMS_fFec)),
is.table(PhenVarBoot_Cov_Table_Small_arena)
colnames(PhenVarBoot_Cov_Table_Small_arena)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_Small_arena)[2] <- "Cov_component"
colnames(PhenVarBoot_Cov_Table_Small_arena)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_Small_arena)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_Small_arena)[5] <- "l95_CI"
colnames(PhenVarBoot_Cov_Table_Small_arena)[6] <- "u95_CI"
4]=as.numeric(PhenVarBoot_Cov_Table_Small_arena[,4])
PhenVarBoot_Cov_Table_Small_arena[,5]=as.numeric(PhenVarBoot_Cov_Table_Small_arena[,5])
PhenVarBoot_Cov_Table_Small_arena[,6]=as.numeric(PhenVarBoot_Cov_Table_Small_arena[,6])
PhenVarBoot_Cov_Table_Small_arena[,
# Small group size
# Covariance MS x IS
=as.data.frame(cbind(D_data_Small_pop_M_MS_n,D_data_Small_pop_M_InSuc_n))
x5<- function(d, i){
c <- d[i,]
d2 return(2*cov(d2[1],d2[2],use='pairwise.complete.obs'))
}<- boot(x5, c, R=10000)
Small_pop_M_cov_mMS_inSuc_bootvar
# Covariance MS x FS
=as.data.frame(cbind(D_data_Small_pop_M_MS_n,D_data_Small_pop_M_feSuc_n))
x6
<- boot(x6, c, R=10000)
Small_pop_M_cov_mMS_feSuc_bootvar
# Covariance IS x FS
=as.data.frame(cbind(D_data_Small_pop_M_InSuc_n,D_data_Small_pop_M_feSuc_n))
x8
<- boot(x8, c, R=10000)
Small_pop_M_cov_inSuc_feSuc_bootvar
# Covariance IS x pFec
=as.data.frame(cbind(D_data_Small_pop_M_InSuc_n,D_data_Small_pop_M_pFec_n))
x9
<- boot(x9, c, R=10000)
Small_pop_M_cov_inSuc_pFec_bootvar
# Covariance FS x pFec
=as.data.frame(cbind(D_data_Small_pop_M_feSuc_n,D_data_Small_pop_M_pFec_n))
x10
<- boot(x10, c, R=10000)
Small_pop_M_cov_feSuc_pFec_bootvar
# Extract data and write results table
<- as.data.frame(cbind("Male", "cov_MS_IS", "Small population size", mean(Small_pop_M_cov_mMS_inSuc_bootvar$t), quantile(Small_pop_M_cov_mMS_inSuc_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_cov_mMS_inSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_cov_mMS_inSuc <- as.data.frame(cbind("Male", "cov_MS_FS", "Small population size", mean(Small_pop_M_cov_mMS_feSuc_bootvar$t), quantile(Small_pop_M_cov_mMS_feSuc_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_cov_mMS_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_cov_mMS_feSuc <- as.data.frame(cbind("Male", "cov_IS_FS", "Small population size", mean(Small_pop_M_cov_inSuc_feSuc_bootvar$t), quantile(Small_pop_M_cov_inSuc_feSuc_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_cov_inSuc_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_cov_inSuc_feSuc <- as.data.frame(cbind("Male", "cov_IS_pFec", "Small population size", mean(Small_pop_M_cov_inSuc_pFec_bootvar$t), quantile(Small_pop_M_cov_inSuc_pFec_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_cov_inSuc_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_cov_inSuc_pFec <- as.data.frame(cbind("Male", "cov_FS_pFec", "Small population size", mean(Small_pop_M_cov_feSuc_pFec_bootvar$t), quantile(Small_pop_M_cov_feSuc_pFec_bootvar$t,.025, names = FALSE), quantile(Small_pop_M_cov_feSuc_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Small_pop_cov_feSuc_pFec
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Small_pop_cov_mMS_inSuc,PhenVarBoot_Table_Male_Small_pop_cov_mMS_feSuc,
PhenVarBoot_Cov_Table_Small_pop
PhenVarBoot_Table_Male_Small_pop_cov_mMS_pFec,PhenVarBoot_Table_Male_Small_pop_cov_inSuc_feSuc,
PhenVarBoot_Table_Male_Small_pop_cov_inSuc_pFec,PhenVarBoot_Table_Male_Small_pop_cov_feSuc_pFec,digits=3)
PhenVarBoot_Table_Female_Small_pop_cov_fMS_fFec)),
is.table(PhenVarBoot_Cov_Table_Small_pop)
colnames(PhenVarBoot_Cov_Table_Small_pop)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_Small_pop)[2] <- "Cov_component"
colnames(PhenVarBoot_Cov_Table_Small_pop)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_Small_pop)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_Small_pop)[5] <- "l95_CI"
colnames(PhenVarBoot_Cov_Table_Small_pop)[6] <- "u95_CI"
4]=as.numeric(PhenVarBoot_Cov_Table_Small_pop[,4])
PhenVarBoot_Cov_Table_Small_pop[,5]=as.numeric(PhenVarBoot_Cov_Table_Small_pop[,5])
PhenVarBoot_Cov_Table_Small_pop[,6]=as.numeric(PhenVarBoot_Cov_Table_Small_pop[,6])
PhenVarBoot_Cov_Table_Small_pop[,
# Large group size
# Covariance MS x IS
=as.data.frame(cbind(D_data_Large_pop_M_MS_n,D_data_Large_pop_M_InSuc_n))
x5<- function(d, i){
c <- d[i,]
d2 return(2*cov(d2[1],d2[2],use='pairwise.complete.obs'))
}<- boot(x5, c, R=10000)
Large_pop_M_cov_mMS_inSuc_bootvar
# Covariance MS x FS
=as.data.frame(cbind(D_data_Large_pop_M_MS_n,D_data_Large_pop_M_feSuc_n))
x6
<- boot(x6, c, R=10000)
Large_pop_M_cov_mMS_feSuc_bootvar
# Covariance IS x FS
=as.data.frame(cbind(D_data_Large_pop_M_InSuc_n,D_data_Large_pop_M_feSuc_n))
x8
<- boot(x8, c, R=10000)
Large_pop_M_cov_inSuc_feSuc_bootvar
# Covariance IS x pFec
=as.data.frame(cbind(D_data_Large_pop_M_InSuc_n,D_data_Large_pop_M_pFec_n))
x9
<- boot(x9, c, R=10000)
Large_pop_M_cov_inSuc_pFec_bootvar
# Covariance FS x pFec
=as.data.frame(cbind(D_data_Large_pop_M_feSuc_n,D_data_Large_pop_M_pFec_n))
x10
<- boot(x10, c, R=10000)
Large_pop_M_cov_feSuc_pFec_bootvar rm('c')
# Extract data and write results table
<- as.data.frame(cbind("Male", "cov_MS_IS", "Large population size", mean(Large_pop_M_cov_mMS_inSuc_bootvar$t), quantile(Large_pop_M_cov_mMS_inSuc_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_cov_mMS_inSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_cov_mMS_inSuc <- as.data.frame(cbind("Male", "cov_MS_FS", "Large population size", mean(Large_pop_M_cov_mMS_feSuc_bootvar$t), quantile(Large_pop_M_cov_mMS_feSuc_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_cov_mMS_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_cov_mMS_feSuc <- as.data.frame(cbind("Male", "cov_IS_FS", "Large population size", mean(Large_pop_M_cov_inSuc_feSuc_bootvar$t), quantile(Large_pop_M_cov_inSuc_feSuc_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_cov_inSuc_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_cov_inSuc_feSuc <- as.data.frame(cbind("Male", "cov_IS_pFec", "Large population size", mean(Large_pop_M_cov_inSuc_pFec_bootvar$t), quantile(Large_pop_M_cov_inSuc_pFec_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_cov_inSuc_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_cov_inSuc_pFec <- as.data.frame(cbind("Male", "cov_FS_pFec", "Large population size", mean(Large_pop_M_cov_feSuc_pFec_bootvar$t), quantile(Large_pop_M_cov_feSuc_pFec_bootvar$t,.025, names = FALSE), quantile(Large_pop_M_cov_feSuc_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_Large_pop_cov_feSuc_pFec
<- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_Large_pop_cov_mMS_inSuc,PhenVarBoot_Table_Male_Large_pop_cov_mMS_feSuc,
PhenVarBoot_Cov_Table_Large_pop
PhenVarBoot_Table_Male_Large_pop_cov_mMS_pFec,PhenVarBoot_Table_Male_Large_pop_cov_inSuc_feSuc,
PhenVarBoot_Table_Male_Large_pop_cov_inSuc_pFec,PhenVarBoot_Table_Male_Large_pop_cov_feSuc_pFec,digits=3)
PhenVarBoot_Table_Female_Large_pop_cov_fMS_fFec)),
is.table(PhenVarBoot_Cov_Table_Large_pop)
colnames(PhenVarBoot_Cov_Table_Large_pop)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_Large_pop)[2] <- "Cov_component"
colnames(PhenVarBoot_Cov_Table_Large_pop)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_Large_pop)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_Large_pop)[5] <- "l95_CI"
colnames(PhenVarBoot_Cov_Table_Large_pop)[6] <- "u95_CI"
4]=as.numeric(PhenVarBoot_Cov_Table_Large_pop[,4])
PhenVarBoot_Cov_Table_Large_pop[,5]=as.numeric(PhenVarBoot_Cov_Table_Large_pop[,5])
PhenVarBoot_Cov_Table_Large_pop[,6]=as.numeric(PhenVarBoot_Cov_Table_Large_pop[,6])
PhenVarBoot_Cov_Table_Large_pop[,
### Extract data and write results table ####
<- as.data.frame(as.matrix(rbind( PhenVarBoot_Table_Male_Small_pop_cov_mMS_inSuc,PhenVarBoot_Table_Male_Large_pop_cov_mMS_inSuc,
PhenVarBoot_Table_plot_cov
PhenVarBoot_Table_Male_Large_arena_cov_mMS_inSuc,PhenVarBoot_Table_Male_Small_arena_cov_mMS_inSuc,
PhenVarBoot_Table_Male_Small_pop_cov_mMS_feSuc,PhenVarBoot_Table_Male_Large_pop_cov_mMS_feSuc,
PhenVarBoot_Table_Male_Large_arena_cov_mMS_feSuc,PhenVarBoot_Table_Male_Small_arena_cov_mMS_feSuc,
PhenVarBoot_Table_Male_Small_pop_cov_mMS_pFec,PhenVarBoot_Table_Male_Large_pop_cov_mMS_pFec,
PhenVarBoot_Table_Male_Large_arena_cov_mMS_pFec,PhenVarBoot_Table_Male_Small_arena_cov_mMS_pFec,
PhenVarBoot_Table_Male_Small_pop_cov_inSuc_feSuc,PhenVarBoot_Table_Male_Large_pop_cov_inSuc_feSuc,
PhenVarBoot_Table_Male_Large_arena_cov_inSuc_feSuc,PhenVarBoot_Table_Male_Small_arena_cov_inSuc_feSuc,
PhenVarBoot_Table_Male_Small_pop_cov_inSuc_pFec,PhenVarBoot_Table_Male_Large_pop_cov_inSuc_pFec,
PhenVarBoot_Table_Male_Large_arena_cov_inSuc_pFec,PhenVarBoot_Table_Male_Small_arena_cov_inSuc_pFec,
PhenVarBoot_Table_Male_Small_pop_cov_feSuc_pFec,PhenVarBoot_Table_Male_Large_pop_cov_feSuc_pFec,
PhenVarBoot_Table_Male_Large_arena_cov_feSuc_pFec,PhenVarBoot_Table_Male_Small_arena_cov_feSuc_pFec,
PhenVarBoot_Table_Female_Small_pop_cov_fMS_fFec,PhenVarBoot_Table_Female_Large_pop_cov_fMS_fFec,
PhenVarBoot_Table_Female_Large_arena_cov_fMS_fFec,PhenVarBoot_Table_Female_Small_arena_cov_fMS_fFec
)))
is.table(PhenVarBoot_Table_plot_cov)
colnames(PhenVarBoot_Table_plot_cov)[1] <- "Sex"
colnames(PhenVarBoot_Table_plot_cov)[2] <- "Cov_component"
colnames(PhenVarBoot_Table_plot_cov)[3] <- "Treatment"
colnames(PhenVarBoot_Table_plot_cov)[4] <- "Variance"
colnames(PhenVarBoot_Table_plot_cov)[5] <- "l95_CI"
colnames(PhenVarBoot_Table_plot_cov)[6] <- "u95_CI"
4]=round(as.numeric(PhenVarBoot_Table_plot_cov[,4]),digits=2)
PhenVarBoot_Table_plot_cov[,5]=round(as.numeric(PhenVarBoot_Table_plot_cov[,5]),digits=2)
PhenVarBoot_Table_plot_cov[,6]=round(as.numeric(PhenVarBoot_Table_plot_cov[,6]),digits=2)
PhenVarBoot_Table_plot_cov[,rownames(PhenVarBoot_Table_plot_cov) <- c()
Table S10 (Part 2): Covariances of variance decomposition of reproductive success into mating success (MS), insemination success (IS), fertilization success (FS) and partner fecundity (pFec) for males for group and arena size treatment given with mean and 95%CI estimated via bootstrapping.
kable(PhenVarBoot_Table_plot_cov)
Sex | Cov_component | Treatment | Variance | l95_CI | u95_CI |
---|---|---|---|---|---|
Male | cov_MS_IS | Small population size | -0.04 | -0.18 | 0.11 |
Male | cov_MS_IS | Large population size | -0.26 | -0.40 | -0.12 |
Male | cov_MS_IS | Large arena size | -0.30 | -0.45 | -0.17 |
Male | cov_MS_IS | Small arena size | 0.00 | -0.15 | 0.15 |
Male | cov_MS_FS | Small population size | 0.02 | -0.07 | 0.13 |
Male | cov_MS_FS | Large population size | -0.04 | -0.22 | 0.14 |
Male | cov_MS_FS | Large arena size | -0.03 | -0.20 | 0.14 |
Male | cov_MS_FS | Small arena size | 0.01 | -0.09 | 0.13 |
Male | cov_mMS_pFec | Small population size | 0.05 | -0.03 | 0.15 |
Male | cov_mMS_pFec | Large population size | 0.01 | -0.08 | 0.09 |
Male | cov_mMS_pFec | Large arena size | 0.01 | -0.08 | 0.10 |
Male | cov_mMS_pFec | Small arena size | 0.05 | -0.03 | 0.14 |
Male | cov_IS_FS | Small population size | -0.04 | -0.13 | 0.05 |
Male | cov_IS_FS | Large population size | -0.04 | -0.16 | 0.08 |
Male | cov_IS_FS | Large arena size | -0.04 | -0.14 | 0.07 |
Male | cov_IS_FS | Small arena size | -0.04 | -0.14 | 0.06 |
Male | cov_IS_pFec | Small population size | 0.01 | -0.09 | 0.10 |
Male | cov_IS_pFec | Large population size | -0.05 | -0.11 | 0.01 |
Male | cov_IS_pFec | Large arena size | -0.02 | -0.10 | 0.04 |
Male | cov_IS_pFec | Small arena size | -0.02 | -0.10 | 0.06 |
Male | cov_FS_pFec | Small population size | -0.02 | -0.09 | 0.04 |
Male | cov_FS_pFec | Large population size | -0.03 | -0.12 | 0.06 |
Male | cov_FS_pFec | Large arena size | 0.00 | -0.08 | 0.08 |
Male | cov_FS_pFec | Small arena size | -0.05 | -0.15 | 0.03 |
Female | cov_fMS_fFec | Small population size | -0.22 | -0.50 | 0.04 |
Female | cov_fMS_fFec | Large population size | -0.13 | -0.52 | 0.22 |
Female | cov_fMS_fFec | Large arena size | -0.08 | -0.40 | 0.20 |
Female | cov_fMS_fFec | Small arena size | -0.31 | -0.61 | -0.02 |
We plotted the variance decomposition including insemination success and fertilization success.
## Plot: Variance decomposition for males including IS and FS ####
# Set factors and levels for plot
$Treatment<- factor(PhenVarBoot_Table_plot_cov$Treatment, levels=c("Small population size",'Large population size','Large arena size','Small arena size'))
PhenVarBoot_Table_plot_cov$Cov_component <- factor(PhenVarBoot_Table_plot_cov$Cov_component, levels=c("cov_MS_IS",'cov_MS_FS','cov_MS_pFec','cov_IS_FS','cov_IS_pFec','cov_FS_pFec','cov_MS_Fec'))
PhenVarBoot_Table_plot_cov=PhenVarBoot_Table_plot_cov[PhenVarBoot_Table_plot_cov$Treatment!='Large population size',]
PhenVarBoot_Table_plot_cov_arena=PhenVarBoot_Table_plot_cov_arena[PhenVarBoot_Table_plot_cov_arena$Treatment!='Small population size',]
PhenVarBoot_Table_plot_cov_arena=PhenVarBoot_Table_plot_cov[PhenVarBoot_Table_plot_cov$Treatment!='Large arena size',]
PhenVarBoot_Table_plot_cov_pop=PhenVarBoot_Table_plot_cov_pop[PhenVarBoot_Table_plot_cov_pop$Treatment!='Small arena size',]
PhenVarBoot_Table_plot_cov_pop
$Treatment<- factor(PhenVarBoot_Table$Treatment, levels=c("Small population size",'Large population size','Large arena size','Small arena size'))
PhenVarBoot_Table$Variance_component <- factor(PhenVarBoot_Table$Variance_component, levels=c("MS",'IS','FS','pFec','cov_mMS_PS','cov_mMS_pFec','cov_PS_pFec','fMS','fFec','cov_fMS_fFec'))
PhenVarBoot_Table=PhenVarBoot_Table[PhenVarBoot_Table$Treatment!='Large population size',]
PhenVarBoot_Table_arena=PhenVarBoot_Table_arena[PhenVarBoot_Table_arena$Treatment!='Small population size',]
PhenVarBoot_Table_arena=PhenVarBoot_Table[PhenVarBoot_Table$Treatment!='Large arena size',]
PhenVarBoot_Table_pop=PhenVarBoot_Table_pop[PhenVarBoot_Table_pop$Treatment!='Small arena size',]
PhenVarBoot_Table_pop
### Plot: Variance decomposition for population size including IS and FS ####
<- ggplot(PhenVarBoot_Table_pop[1:8,], aes(x=Variance_component, y=Variance, alpha=Treatment)) +
BarPlot_5_2scale_y_continuous(limits = c(0, 0.6), breaks = seq(0,0.6,0.15), expand = c(0 ,0)) +
geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
geom_bar(stat="identity", color="black", position=position_dodge(),fill=colpal2[2]) +
geom_errorbar(aes(ymin=l95_CI, ymax=u95_CI, group = Treatment), width=.3,size=.5,alpha=1, position=position_dodge(.9)) +
ylab('Variance') +xlab('') +ggtitle('')+labs(tag = "A")+
scale_x_discrete(breaks=waiver(),labels = c('MS','IS','FS','pFec'))+
theme(panel.border = element_blank(),
plot.title = element_text(hjust = 0.5),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.tag.position=c(0.01,0.98),
legend.position = c(0.8, 0.9),
legend.title = element_blank(),
legend.text = element_text(colour="black", size=10),
axis.line.x = element_line(colour = "black", size = 1),
axis.line.y = element_line(colour = "black", size = 1),
axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
axis.ticks = element_line(size = 1),
axis.ticks.length = unit(.3, "cm"))+
scale_alpha_manual(values=c(0.65,1),name = "Treatment", labels = c('Small group','Large group'))
### Plot: Variance decomposition for arena size including IS and FS ####
<-ggplot(PhenVarBoot_Table_arena[1:8,], aes(x=Variance_component, y=Variance, alpha=Treatment)) +
BarPlot_6_2scale_y_continuous(limits = c(0, 0.6), breaks = seq(0,0.6,0.15), expand = c(0 ,0)) +
geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
geom_bar(stat="identity", color="black", position=position_dodge(),fill=colpal2[2]) +
geom_errorbar(aes(ymin=l95_CI, ymax=u95_CI, group = Treatment), width=.3,size=.5,alpha=1, position=position_dodge(.9)) +
ylab('') +xlab('') +ggtitle('')+labs(tag = "B")+
scale_x_discrete(breaks=waiver(),labels = c('MS','IS','FS','pFec'))+
scale_alpha_manual(values=c(0.65,1),name = "Treatment", labels = c('Large arena','Small arena'))+
theme(panel.border = element_blank(),
plot.title = element_text(hjust = 0.5),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.8, 0.9),
plot.tag.position=c(0.01,0.98),
legend.title = element_blank(),
legend.text = element_text(colour="black", size=10),
axis.line.x = element_line(colour = "black", size = 1),
axis.line.y = element_line(colour = "black", size = 1),
axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
axis.ticks = element_line(size = 1),
axis.ticks.length = unit(.3, "cm"))
### Plot: Covariances for population size including IS and FS ####
<- ggplot(PhenVarBoot_Table_plot_cov_pop[1:12,], aes(x=Cov_component, y=Variance, alpha=Treatment)) +
BarPlot_1cvscale_y_continuous(limits = c(-0.50, 0.35), breaks = seq(-0.5, 0.25, 0.25), expand = c(0 ,0)) +
geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
geom_bar(stat="identity", color="black", position=position_dodge(),fill=colpal2[2]) +
geom_errorbar(aes(ymin=l95_CI, ymax=u95_CI, group = Treatment), width=.3,size=.5,alpha=1, position=position_dodge(.9)) +
ylab('Variance') +xlab('') +ggtitle('')+labs(tag = "A")+
scale_x_discrete(breaks=waiver(),labels = c('2 cov\n(MS,\nIS)','2 cov\n(MS,\nFS)','2 cov\n(MS,\npFec)','2 cov\n(IS,\nFS)','2 x cov\n(IS,\npFec)','2 cov\n(FS,\npFec)'))+
theme(panel.border = element_blank(),
plot.title = element_text(hjust = 0.5),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.tag.position=c(0.01,0.98),
legend.position = c(0.8, 0.9),
legend.title = element_blank(),
legend.text = element_text(colour="black", size=10),
axis.line.x = element_line(colour = "black", size = 1),
axis.line.y = element_line(colour = "black", size = 1),
axis.text.x = element_text(face="plain", color="black", size=7, angle=0),
axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
axis.ticks = element_line(size = 1),
axis.ticks.length = unit(.3, "cm"))+
scale_alpha_manual(values=c(0.65,1),name = "Treatment", labels = c('Small group','Large group'))
### Plot: Covariances for arena size including IS and FS ####
<-ggplot(PhenVarBoot_Table_plot_cov_arena[1:12,], aes(x=Cov_component, y=Variance, alpha=Treatment)) +
BarPlot_2cvscale_y_continuous(limits = c(-0.50, 0.35), breaks = seq(-0.5, 0.25, 0.25), expand = c(0 ,0)) +
geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
geom_bar(stat="identity", color="black", position=position_dodge(),fill=colpal2[2]) +
geom_errorbar(aes(ymin=l95_CI, ymax=u95_CI, group = Treatment), width=.3,size=.5,alpha=1, position=position_dodge(.9)) +
ylab('') +xlab('') +ggtitle('')+labs(tag = "B")+
scale_x_discrete(breaks=waiver(),labels = c('2 cov\n(MS,\nIS)','2 cov\n(MS,\nFS)','2 cov\n(MS,\npFec)','2 cov\n(IS,\nFS)','2 cov\n(IS,\npFec)','2 cov\n(FS,\npFec)'))+
scale_alpha_manual(values=c(0.65,1),name = "Treatment", labels = c('Large arena','Small arena'))+
theme(panel.border = element_blank(),
plot.title = element_text(hjust = 0.5),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.8, 0.9),
plot.tag.position=c(0.01,0.98),
legend.title = element_blank(),
legend.text = element_text(colour="black", size=10),
axis.line.x = element_line(colour = "black", size = 1),
axis.line.y = element_line(colour = "black", size = 1),
axis.text.x = element_text(face="plain", color="black", size=7, angle=0),
axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
axis.ticks = element_line(size = 1),
axis.ticks.length = unit(.3, "cm"))
### Figure S8
<-grid.arrange(BarPlot_5_2+labs(tag = "A"),BarPlot_6_2+labs(tag = "B"),BarPlot_1cv+labs(tag = "C")+xlab('Variance component'),BarPlot_2cv+labs(tag = "D")+xlab('Variance component'), nrow = 2,ncol=2) Figure_S7
Figure S7: Variance (A + B) and covariance (C + D) components of reproductive success into mating success (MS), insemination success (IS), fertilization success (FS) and partner fecundity (pFec) for males for group size treatment (A + C) and arena size treatment (B + D). Mean and 95%CI estimated via bootstrapping (Table S7).
=plot_grid(Figure_S7, ncol=1, rel_heights=c(0.1, 1)) # rel_heights values control title margins Fig_S7
Finally, we tested if the (co-) variance components insemination success and fertilization success differed between the treatments (large vs small population size & small vs large arena size).
## Permuation test for treatment comparison of variance decomposition including IS and FS ####
### Insemination success (IS) ####
# Arena size
=c(Small_arena_M_InSuc_bootvar$t)-c(Large_arena_M_InSuc_bootvar$t)
Treat_diff_Male_arena_InSuc
=mean(Treat_diff_Male_arena_InSuc,na.rm=TRUE)
t_Treat_diff_Male_arena_InSuc=quantile(Treat_diff_Male_arena_InSuc,.025,na.rm=TRUE)
t_Treat_diff_Male_arena_InSuc_lower=quantile(Treat_diff_Male_arena_InSuc,.975,na.rm=TRUE)
t_Treat_diff_Male_arena_InSuc_upper
# Permutation test to calculate p value
=c(D_data_Large_arena$rel_m_InSuc,D_data_Small_arena$rel_m_InSuc)
comb_data
= var(na.omit((D_data_Small_arena$rel_m_InSuc)))-var(na.omit((D_data_Large_arena$rel_m_InSuc)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Large_arena$rel_m_InSuc)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Small_arena$rel_m_InSuc)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(a.random))-var(na.omit(b.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_arena_InSuc_p
# Population size
=c(Large_pop_M_InSuc_bootvar$t)-c(Small_pop_M_InSuc_bootvar$t)
Treat_diff_Male_pop_InSuc
=mean(Treat_diff_Male_pop_InSuc,na.rm=TRUE)
t_Treat_diff_Male_pop_InSuc=quantile(Treat_diff_Male_pop_InSuc,.025,na.rm=TRUE)
t_Treat_diff_Male_pop_InSuc_lower=quantile(Treat_diff_Male_pop_InSuc,.975,na.rm=TRUE)
t_Treat_diff_Male_pop_InSuc_upper
# Permutation test to calculate p value
=c(D_data_Small_pop$rel_m_InSuc,D_data_Large_pop$rel_m_InSuc)
comb_data
= var(na.omit((D_data_Large_pop$rel_m_InSuc)))-var(na.omit((D_data_Small_pop$rel_m_InSuc)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Small_pop$rel_m_InSuc)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Large_pop$rel_m_InSuc)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(a.random))-var(na.omit(b.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_pop_InSuc_p
### Fertilization success (FS) ####
# Arena size
=c(Small_arena_M_feSuc_bootvar$t)-c(Large_arena_M_feSuc_bootvar$t)
Treat_diff_Male_arena_feSuc
=mean(Treat_diff_Male_arena_feSuc,na.rm=TRUE)
t_Treat_diff_Male_arena_feSuc=quantile(Treat_diff_Male_arena_feSuc,.025,na.rm=TRUE)
t_Treat_diff_Male_arena_feSuc_lower=quantile(Treat_diff_Male_arena_feSuc,.975,na.rm=TRUE)
t_Treat_diff_Male_arena_feSuc_upper
# Permutation test to calculate p value
=c(D_data_Large_arena$rel_m_feSuc,D_data_Small_arena$rel_m_feSuc)
comb_data
= var(na.omit((D_data_Small_arena$rel_m_feSuc)))-var(na.omit((D_data_Large_arena$rel_m_feSuc)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Large_arena$rel_m_feSuc)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Small_arena$rel_m_feSuc)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(a.random)) - var(na.omit(b.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_arena_feSuc_p
# Population size
=c(Large_pop_M_feSuc_bootvar$t)-c(Small_pop_M_feSuc_bootvar$t)
Treat_diff_Male_pop_feSuc
=mean(Treat_diff_Male_pop_feSuc,na.rm=TRUE)
t_Treat_diff_Male_pop_feSuc=quantile(Treat_diff_Male_pop_feSuc,.025,na.rm=TRUE)
t_Treat_diff_Male_pop_feSuc_lower=quantile(Treat_diff_Male_pop_feSuc,.975,na.rm=TRUE)
t_Treat_diff_Male_pop_feSuc_upper
# Permutation test to calculate p value
=c(D_data_Small_pop$rel_m_feSuc,D_data_Large_pop$rel_m_feSuc)
comb_data
= var(na.omit((D_data_Large_pop$rel_m_feSuc)))-var(na.omit((D_data_Small_pop$rel_m_feSuc)))
diff.observed
= 100000
number_of_permutations = NULL
diff.random for (i in 1 : number_of_permutations) {
# Sample from the combined dataset
= sample (na.omit(comb_data), length(c(D_data_Small_pop$rel_m_feSuc)), TRUE)
a.random = sample (na.omit(comb_data), length(c(D_data_Large_pop$rel_m_feSuc)), TRUE)
b.random
# Null (permuated) difference
= var(na.omit(a.random)) - var(na.omit(b.random))
diff.random[i]
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
= sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/ number_of_permutations
t_Treat_diff_Male_pop_feSuc_p
### Extract data and write results table ####
<- as.data.frame(cbind("Male", "Arena size", "IS", t_Treat_diff_Male_arena_InSuc, t_Treat_diff_Male_arena_InSuc_lower, t_Treat_diff_Male_arena_InSuc_upper, t_Treat_diff_Male_arena_InSuc_p))
CompTreat_Table_Male_arena_InSuc names(CompTreat_Table_Male_arena_InSuc)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Arena size", "FS", t_Treat_diff_Male_arena_feSuc, t_Treat_diff_Male_arena_feSuc_lower, t_Treat_diff_Male_arena_feSuc_upper, t_Treat_diff_Male_arena_feSuc_p))
CompTreat_Table_Male_arena_feSuc names(CompTreat_Table_Male_arena_feSuc)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Population size", "IS", t_Treat_diff_Male_pop_InSuc, t_Treat_diff_Male_pop_InSuc_lower, t_Treat_diff_Male_pop_InSuc_upper, t_Treat_diff_Male_pop_InSuc_p))
CompTreat_Table_Male_pop_InSuc names(CompTreat_Table_Male_pop_InSuc)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(cbind("Male", "Population size", "FS", t_Treat_diff_Male_pop_feSuc, t_Treat_diff_Male_pop_feSuc_lower, t_Treat_diff_Male_pop_feSuc_upper, t_Treat_diff_Male_pop_feSuc_p))
CompTreat_Table_Male_pop_feSuc names(CompTreat_Table_Male_pop_feSuc)=c('V1','V2','V3','V4','V5','V6','V7')
<- as.data.frame(as.matrix(rbind(CompTreat_Table_Male_pop_mMS,CompTreat_Table_Male_arena_mMS,
Table_VarianceDecomposition_TreatComp
CompTreat_Table_Male_pop_InSuc,CompTreat_Table_Male_arena_InSuc,
CompTreat_Table_Male_pop_feSuc,CompTreat_Table_Male_arena_feSuc,
CompTreat_Table_Male_pop_mFec,CompTreat_Table_Male_arena_mFec,
CompTreat_Table_Female_pop_fMS,CompTreat_Table_Female_arena_fMS,
CompTreat_Table_Female_pop_fFec,CompTreat_Table_Female_arena_fFec)))
colnames(Table_VarianceDecomposition_TreatComp)[1] <- "Sex"
colnames(Table_VarianceDecomposition_TreatComp)[2] <- "Treatment"
colnames(Table_VarianceDecomposition_TreatComp)[3] <- "Variance_component"
colnames(Table_VarianceDecomposition_TreatComp)[4] <- "Variance"
colnames(Table_VarianceDecomposition_TreatComp)[5] <- "l95_CI"
colnames(Table_VarianceDecomposition_TreatComp)[6] <- "u95_CI"
colnames(Table_VarianceDecomposition_TreatComp)[7] <- "p-value"
4]=round(as.numeric(Table_VarianceDecomposition_TreatComp[,4]),digits=2)
Table_VarianceDecomposition_TreatComp[,5]=round(as.numeric(Table_VarianceDecomposition_TreatComp[,5]),digits=2)
Table_VarianceDecomposition_TreatComp[,6]=round(as.numeric(Table_VarianceDecomposition_TreatComp[,6]),digits=2)
Table_VarianceDecomposition_TreatComp[,7]=round(as.numeric(Table_VarianceDecomposition_TreatComp[,7]),digits=3)
Table_VarianceDecomposition_TreatComp[,rownames(Table_VarianceDecomposition_TreatComp) <- c()
Table S11: Influence of density treatment (group size and arena) on the variance and covariance components of reproductive success into mating success (MS), insemination success (IS), fertilization success (FS) and partner fecundity (pFec) for males. Negative effect sizes indicate larger values at lower density and positive effect sizes larger values at higher density.
kable(Table_VarianceDecomposition_TreatComp)
Sex | Treatment | Variance_component | Variance | l95_CI | u95_CI | p-value |
---|---|---|---|---|---|---|
Male | Population size | MS | 0.17 | -0.01 | 0.37 | 0.021 |
Male | Arena size | MS | -0.11 | -0.31 | 0.08 | 0.127 |
Male | Population size | IS | -0.02 | -0.15 | 0.12 | 0.685 |
Male | Arena size | IS | 0.11 | -0.04 | 0.24 | 0.021 |
Male | Population size | FS | 0.12 | 0.04 | 0.21 | 0.000 |
Male | Arena size | FS | -0.05 | -0.14 | 0.05 | 0.072 |
Male | Population size | pFec | -0.03 | -0.11 | 0.05 | 0.275 |
Male | Arena size | pFec | 0.01 | -0.07 | 0.10 | 0.641 |
Female | Population size | MS | 0.34 | 0.11 | 0.60 | 0.000 |
Female | Arena size | MS | 0.15 | -0.08 | 0.40 | 0.061 |
Female | Population size | Fec | -0.31 | -0.91 | 0.27 | 0.126 |
Female | Arena size | Fec | -0.25 | -0.87 | 0.32 | 0.210 |
sessionInfo()
R version 4.2.0 (2022-04-22 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19045)
Matrix products: default
locale:
[1] LC_COLLATE=German_Germany.utf8 LC_CTYPE=German_Germany.utf8
[3] LC_MONETARY=German_Germany.utf8 LC_NUMERIC=C
[5] LC_TIME=German_Germany.utf8
attached base packages:
[1] grid stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] knitr_1.42 ICC_2.4.0 data.table_1.14.8 boot_1.3-28
[5] RColorBrewer_1.1-3 car_3.1-1 carData_3.0-5 gridGraphics_0.5-1
[9] cowplot_1.1.1 EnvStats_2.7.0 dplyr_1.1.0 readr_2.1.4
[13] lmerTest_3.1-3 lme4_1.1-31 Matrix_1.5-3 gridExtra_2.3
[17] ggplot2_3.4.1 ggeffects_1.2.0 workflowr_1.7.0
loaded via a namespace (and not attached):
[1] httr_1.4.5 sass_0.4.5 bit64_4.0.5
[4] vroom_1.6.1 jsonlite_1.8.4 splines_4.2.0
[7] bslib_0.4.2 getPass_0.2-2 highr_0.10
[10] yaml_2.3.7 numDeriv_2016.8-1.1 pillar_1.8.1
[13] lattice_0.20-45 glue_1.6.2 digest_0.6.31
[16] promises_1.2.0.1 minqa_1.2.5 colorspace_2.1-0
[19] htmltools_0.5.4 httpuv_1.6.9 pkgconfig_2.0.3
[22] scales_1.2.1 processx_3.8.0 whisker_0.4.1
[25] later_1.3.0 tzdb_0.3.0 git2r_0.31.0
[28] tibble_3.2.0 generics_0.1.3 farver_2.1.1
[31] ellipsis_0.3.2 cachem_1.0.7 withr_2.5.0
[34] cli_3.6.1 magrittr_2.0.3 crayon_1.5.2
[37] evaluate_0.20 ps_1.7.2 fs_1.6.1
[40] fansi_1.0.4 nlme_3.1-157 MASS_7.3-56
[43] tools_4.2.0 hms_1.1.2 lifecycle_1.0.3
[46] stringr_1.5.0 munsell_0.5.0 callr_3.7.3
[49] compiler_4.2.0 jquerylib_0.1.4 rlang_1.0.6
[52] nloptr_2.0.3 rstudioapi_0.14 rmarkdown_2.20
[55] gtable_0.3.1 abind_1.4-5 R6_2.5.1
[58] fastmap_1.1.1 bit_4.0.5 utf8_1.2.3
[61] rprojroot_2.0.3 stringi_1.7.12 parallel_4.2.0
[64] Rcpp_1.0.10 vctrs_0.5.2 tidyselect_1.2.0
[67] xfun_0.37