Learn R Programming

iSTAY (version 1.0.0)

ggiSTAY_analysis: ggplot2 extension for plotting diversity–stability and diversity–synchrony relationships.

Description

ggiSTAY_analysis is a graphical function based on the output from the functions iSTAY_Single or iSTAY_Multiple. It generates plots showing the relationships between stability (and synchrony if multiple time series are included) and an additional variable, such as diversity or another relevant factor.

Usage

ggiSTAY_analysis(output, x_variable, by_group = NULL, model = "LMM")

Value

For an iSTAY_Single object, this function returns a figure showing the relationship between the diversity (or other) variable and stability.

For an iSTAY_Multiple object, this function returns a figure showing the diversity (or other) variable and gamma, alpha, and beta stability, as well as synchrony.

Arguments

output

The output obtained from iSTAY_Single or iSTAY_Multiple. It must include (or be combined with) a column corresponding to the variable specified in x_variable. If by_group is not NULL, must also include a column corresponding the variable specified in by_group.

x_variable

The name of the column representing the diversity (or other) variable to be used as the x-axis in the plot.

by_group

The name of the column representing a categorical variable used to color points by group. The argument is required if model = "LMM", as the model uses it as random effect for both intercept and slope. Default is NULL.

model

Specifies the fitting model. Use model = "lm" for a linear model; or model = "LMM" for a linear mixed model with random effects for both intercept and slope. Default is model = "LMM".

Examples

Run this code
data("Data_Jena_20_metacommunities")
data("Data_Jena_76_metapopulations")
data("Data_Jena_462_populations")
data("Data_Jena_hierarchical_structure")

## Single time series analysis
# Analyze the stability of individual plots and diversity-stability 
# relationship based on 76 plots
# See Example 2 in the iSTAY vignette for the output.
individual_plots <- do.call(rbind, Data_Jena_20_metacommunities)
output_individual_plots_div <- iSTAY_Single(data=individual_plots, order.q=c(1,2), Alltime=TRUE)
output_individual_plots_div <- data.frame(output_individual_plots_div,
                                 log2_sowndiv = log2(as.numeric(do.call(rbind,
                                 strsplit(output_individual_plots_div[,1],"[._]+"))[,2])),
                                 block = do.call(rbind,
                                 strsplit(output_individual_plots_div[,1],"[._]+"))[,1])

ggiSTAY_analysis(output = output_individual_plots_div, x_variable = "log2_sowndiv",
                    by_group="block", model="LMM")

# Analyze the stability of individual populations and diversity-stability 
# relationships based on 462 populations
# See Example 4 in the iSTAY vignette for the output.
individual_populations <- do.call(rbind, Data_Jena_76_metapopulations)
output_individual_populations_div <- iSTAY_Single(data = individual_populations,
                                         order.q=c(1,2), Alltime=TRUE)
output_individual_populations_div <- data.frame(output_individual_populations_div,
                              log2_sowndiv = log2(as.numeric(do.call(rbind,
                              strsplit(output_individual_populations_div[,1],"[._]+"))[,3])),
                              block=do.call(rbind,
                              strsplit(output_individual_populations_div[,1],"[._]+"))[,2])

ggiSTAY_analysis(output = output_individual_populations_div, x_variable = "log2_sowndiv",
                    by_group = "block", model = "LMM")


## Multiple time series analysis
# Analyze the stability and synchrony within each metacommunity
# and their relationships with diversity based on 20 metacommunities
# See Example 6 in the iSTAY vignette for the output.
metacommunities <- Data_Jena_20_metacommunities
output_metacommunities_div <- iSTAY_Multiple(data = metacommunities, 
                                     order.q = c(1,2), Alltime = TRUE)
output_metacommunities_div <- data.frame(output_metacommunities_div, 
                                    log2_sowndiv = log2(as.numeric(do.call(rbind, 
                                    strsplit(output_metacommunities_div[, 1], "_"))[, 2])),
                                    block = do.call(rbind, 
                                    strsplit(output_metacommunities_div[, 1], "_"))[, 1])

ggiSTAY_analysis(output = output_metacommunities_div, x_variable = "log2_sowndiv",
                    by_group = "block", model = "LMM")

# Analyze the stability and synchrony within each metapopulation
# and their relationships with diversity based on 76 metapopulations
# See Example 8 in the iSTAY vignette for the output.

metapopulations <- Data_Jena_76_metapopulations
output_metapopulations_div <- iSTAY_Multiple(data = metapopulations,
                                              order.q=c(1,2), Alltime=TRUE)
output_metapopulations_div <- data.frame(output_metapopulations_div,
                             log2_sowndiv = log2(as.numeric(do.call(rbind,
                             strsplit(output_metapopulations_div[,1],"[._]+"))[,3])),
                             block = do.call(rbind, 
                             strsplit(output_metapopulations_div[,1],"_"))[,2])

ggiSTAY_analysis(output = output_metapopulations_div, x_variable = "log2_sowndiv",
                    by_group = "block", model = "LMM")

Run the code above in your browser using DataLab