#' Fit a generalized linear model
#'
#' @description This fits a linear model with the form of Indicador ~ Ano + Zona + Post * Zona + Temperatura + Visibilidad + Profundidad to the data. Depending on the specified covars, Temperature, Visibility and Depth can be dropped from the model. Use define_covars to identify which covariates to keep or specify them manually.
#'
#' @param data A data.frame containing at least the columns for Indicador, Ano, Zona, Post, Temperature, Visibility, and Profundidad. The indicator can be any of the biophysical indicators generated by shannon(), density(), fish_biomass(), trophic(), fish_size()
#'
#' @param covars a character vector specifying which covariates to keep. Options are Temperatura, Profundidad, Visibilidad or None (to drop all covariates).
#'
#' @return An object of class lm containing the fitted model
#'
#' @export
#'
#' @author VillaseƱor-Derbez, J.C. <jvillasenor@turfeffect.org>
#'
#' @importFrom magrittr %>%
#'
bio_model <- function(data, covars = c("Temperatura", "Visibilidad", "Profundidad")){
# using all covariates
if (length(covars) == 3){
model <- lm(formula = Indicador ~ Ano + Zona + Post * Zona + Temperatura + Visibilidad + Profundidad, data = data)
}
# for only one variable
if(length(covars) == 1 & !"None" %in% covars){
# using only T
if (covars == c("Temperatura")){
model <- lm(formula = Indicador ~ Ano + Zona + Post * Zona + Temperatura, data = data)
}
# using only V
if (covars == c("Visibilidad")){
model <- lm(formula = Indicador ~ Ano + Zona + Post * Zona + Visibilidad, data = data)
}
# using only P
if (covars == c("Profundidad")){
model <- lm(formula = Indicador ~ Ano + Zona + Post * Zona + Profundidad, data = data)
}
}
if (length(covars) == 2){
covars2 <- paste(covars[1], covars[2])
# using T and V
if (covars2 == c("Temperatura Visibilidad")){
model <- lm(formula = Indicador ~ Ano + Zona + Post * Zona + Temperatura + Visibilidad, data = data)
}
# using T and P
if (covars2 == c("Temperatura Profundidad")){
model <- lm(formula = Indicador ~ Ano + Zona + Post * Zona + Temperatura + Profundidad, data = data)
}
# using V and P
if (covars2 == c("Profundidad Visibilidad")){
model <- lm(formula = Indicador ~ Ano + Zona + Post * Zona + Visibilidad + Profundidad, data = data)
}
}
# dropping all covariates
if ("None" %in% covars){
model <- lm(formula = Indicador ~ Ano + Zona + Post * Zona, data = data)
}
return(model)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.