#' @name lengthsize
#'
#' @title Converts body length to body size (body weight (mg)) for three pollinating insect groups (Diptera, Hymenoptera and Lepidoptera).
#'
#' @description Calculates body size as dry weight (mg) from existing allometries (See 'Details') using body length values (mm).
#'
#' @param BL A vector of pollinator body length (BL) measurements (mm).
#'
#' @param Eq A vector specificing which predictive allometry to use. Acronyms denote first (and second author), publication date and taxon. DIP, HYM and LEP options are cases where authors modelled body size across all specimens within each order.
#' Options implemented are: \cr
#' \cr
#' \strong{Diptera}
#' \itemize{
#' \item All: BN06D, G97D, GR84D, JS00DA, R77D, S80DCF, S80DCR, S80DMF, S93DA, W13D.
#' \item Brachycera (2 equations): S93DB, Sabo02DB.
#' \item Nematocera (3 equations): JS00DN, S93DN, Sabo02DN.
#' \item Asilidae (2 equations): Sabo02DA, S93DB.
#' \item Bombyliidae (2 equations): S93DB, Sabo02DBB.
#' \item Cyclorrapha: S93DC.
#' }
#' \strong{Hymenoptera}
#' \itemize{
#' \item All: BN06H1, G97H, G97F, GR84H, JS00HA, R77H, S80HCF, S80HCR, S80HMF, S93HA, Sabo02H, W13H.
#' \item Formicidae (13 equations): BN06HF, GR84F, JS00HF, R77A, S80FCF, S80FCR, S80FMF, S93HF, S93HH, S93HI, BN06H1, G97H, G97F.
#' \item Apidae: Sabo02HA.
#' \item Braconidae: S93HB.
#' \item Halictidae: S93HH.
#' \item Ichneumonidae: S93HI.
#' \item Pompilidae: S93HP.
#' \item Vespidae: S93HV & Sabo02HV.
#' }
#' \strong{Lepidoptera}
#' \itemize{
#' \item All: BN06L, G97L, JS00L, R77L, S80LCF, S80LCR, S80LMF,S93LA,W13L.
#' \item Noctuidea: S93LC, S93LN.
#' \item Geometridae: S93LG.
#' \item Microlepidoptera: S93LM.
#' \item Arctiinae: S93LC.
#' }
#'
#' @return A dataframe with pollinator body size (mg) is returned for each species from selected equation/s.
#'
#' @examples
#' lengthsize(BL=c(10,5,2), Eq = c("S80DCR"))
#'
#' @references Full reference list provided within Kendall et al. (2019) Pollinator size and its consequences: Robust estimates of body size in pollinating insects. \emph{Ecology and Evolution}, 9(4), 1702-1714. \doi{10.1002/ece3.4835}.
#'
#' @export
lengthsize=function(BL, Eq = "DIP"){
if(!Eq %in% c("DIP","HYM","LEP", "S93DB","Sabo02DB", "Sabo02DA", "Sabo02DBB", "R77D",
"S93DC", "BN06D", "G97D", "GR84D", "JS00DA",
"S80DCF", "S80DCR", "S80DMF", "S93DA", "W13D", "JS00DN",
"S93DN", "Sabo02DN","DIP","Brachycera","Nematocera",
"Asilidae","Bombyliidae")){
stop("Equation should be one of 'DIP','HYM','LEP','R77D',
'S93DB', 'Sabo02DB', 'Sabo02DA', 'Sabo02DBB',
'S93DC', 'BN06D', 'G97D', 'GR84D', 'JS00DA',
'S80DCF', 'S80DCR', 'S80DMF', 'S93DA', 'W13D', 'JS00DN',
'S93DN', 'Sabo02DN','All','Brachycera','Nematocera','Asilidae','Bombyliidae'")
} else {
S93DB <- exp(-3.374+2.158*log(BL))
Sabo02DB <- 0.006*(BL)^3.05
Sabo02DA <- 0.38*(BL)^1.5
Sabo02DBB <- 0.007*(BL)^3.337
S93DC <- exp(-3.619+2.632*log(BL))
BN06D <- exp(-0.041+0.010*(BL))
G97D <- exp(-3.4294+2.5943*log(BL))
GR84D <- exp(-3.653+2.546*log(BL))
JS00DA <- exp(-2.462+1.881*log(BL))
R77D <- exp(-3.293+2.366*log(BL))
S80DCF <- exp(log(0.074)+1.64*log(BL))
S80DCR <- exp(log(0.068)+1.59*log(BL))
S80DMF <- exp(log(0.022)+2.42*log(BL))
S93DA <- exp(-3.184+2.23*log(BL))
W13D <- exp(-3.29+2.65*log(BL))
JS00DN <- exp(-2.462+1.881*log(BL))
S93DN <- exp(-3.675+2.212*log(BL))
Sabo02DN <- 0.1*(BL)^1.57
Sabo02HA <- 0.006*(BL)^3.407
S93HB <- exp(-3.854+2.441*log(BL))
BN06HF <- exp(log(0.001)+2.33*log(BL))
GR84F <- exp(-3.997+log(BL)*2.489)
JS00HF <- exp(-3.730+2.103*log(BL))
R77A <- exp(-4.029+2.572*log(BL))
S80FCF <- exp(log(0.012)+2.72*log(BL))
S80FCR <- exp(log(0.021)+2.31*log(BL))
S80FMF <- exp(log(0.034)+2.19*log(BL))
S93HF <- exp(-4.727+2.919*log(BL))
S93HH <- exp(-2.891+2.302*log(BL))
S93HI <- exp(-4.149+2.464*log(BL))
BN06H1 <- exp(-6.783+2.544*log(BL))
G97H <- exp(-3.5917+2.6429*log(BL))
G97F <- exp(-3.1415+2.3447*log(BL))
GR84H <- exp(-2.86+(BL)*0.478)
JS00HA <- exp(-3.556+2.193*log(BL))
R77H <- exp(-3.871+2.407*log(BL))
S80HCF <- exp(log(0.043)+2.07*log(BL))
S80HCR <- exp(log(0.022)+2.29*log(BL))
S80HMF <- exp(log(0.016)+2.55*log(BL))
S93HA <- exp(-4.284+2.696*log(BL))
Sabo02H <- 0.56*(BL)^1.56
W13H <- exp(-4.3+3*log(BL))
S93HP <- exp(-2.341+2.006*log(BL))
S93HV <- exp(-3.54+2.782*log(BL))
Sabo02HV <- 0.001*(BL)^3.723
S93LG <- exp(-4.172+2.628*log(BL))
S93LM <- exp(-4.913+2.918*log(BL))
BN06L <- exp(log(0.001)+2.313*log(BL))
G97L <- exp(-4.7915+2.8585*log(BL))
JS00L <- exp(-3.268+2.243*log(BL))
R77L <- exp(-4.037+2.903*log(BL))
S80LCF <- exp(log(0.026)+2.5*log(BL))
S80LCR <- exp(log(0.078)+1.32*log(BL))
S80LMF <- exp(log(0.014)+2.55*log(BL))
S93LA <- exp(-5.036+3.122*log(BL))
W13L <- exp(-3.83+2.77*log(BL))
S93LC <- exp(-3.755+2.658*log(BL))
S93LN <- exp(-3.337+2.499*log(BL))
if (Eq == "S93DB") out <- S93DB
if (Eq == "Sabo02DB") out <- Sabo02DB
if (Eq == "Sabo02DA") out <- Sabo02DA
if (Eq == "Sabo02DBB") out <- Sabo02DBB
if (Eq == "S93DC") out <- S93DC
if (Eq == "BN06D") out <- BN06D
if (Eq == "G97D") out <- G97D
if (Eq == "GR84D") out <- GR84D
if (Eq == "JS00DA") out <- JS00DA
if (Eq == "R77D") out <- R77D
if (Eq == "S80DCF") out <- S80DCF
if (Eq == "S80DCR") out <- S80DCR
if (Eq == "S80DMF") out <- S80DMF
if (Eq == "S93DA") out <- S93DA
if (Eq == "W13D") out <- W13D
if (Eq == "JS00DN") out <- JS00DN
if (Eq == "S93DN") out <- S93DN
if (Eq == "Sabo02DN") out <- Sabo02DN
if (Eq == "Brachycera") out <- cbind(S93DB, Sabo02DB)
if (Eq == "Nematocera") out <- cbind(JS00DN, S93DN, Sabo02DN)
if (Eq == "Asilidae") out <- cbind(Sabo02DA, S93DB)
if (Eq == "Bombyliidae") out <-cbind(Sabo02DBB,S93DB)
if (Eq == "DIP") out <- cbind(BN06D, G97D, GR84D, JS00DA, R77D, S80DCF, S80DCR, S80DMF, S93DA, W13D)
if (Eq == "Sabo02HA") out <- Sabo02HA
if (Eq == "S93HB") out <- S93HB
if (Eq == "BN06HF") out <- BN06HF
if (Eq == "GR84F") out <- GR84F
if (Eq == "JS00HF") out <- JS00HF
if (Eq == "R77A") out <- R77A
if (Eq == "S80FCF") out <- S80FCF
if (Eq == "S80FCR") out <- S80FCR
if (Eq == "S80FMF") out <- S80FMF
if (Eq == "S93HF") out <- S93HF
if (Eq == "S93HH") out <- S93HH
if (Eq == "S93HI") out <- S93HI
if (Eq == "BN06H1") out <- BN06H1
if (Eq == "G97H") out <- G97H
if (Eq == "G97F") out <- G97F
if (Eq == "GR84H") out <- GR84H
if (Eq == "JS00HA") out <- JS00HA
if (Eq == "R77H") out <- R77H
if (Eq == "S80HCF") out <- S80HCF
if (Eq == "S80HCR") out <- S80HCR
if (Eq == "S80HMF") out <- S80HMF
if (Eq == "S93HA") out <- S93HA
if (Eq == "Sabo02H") out <- Sabo02H
if (Eq == "W13H") out <- W13H
if (Eq == "S93HP") out <- S93HP
if (Eq == "S93HV") out <- S93HV
if (Eq == "Sabo02HV") out <- Sabo02HV
if (Eq == "Vespidae") out <- cbind(S93HV,Sabo02HV)
if (Eq == "Formicidae") out <- cbind(BN06HF,GR84F,JS00HF,R77A,S80FCF,S80FCR,S80FMF,S93HF,S93HH,S93HI,BN06H1,G97H,G97F)
if (Eq == "HYM") out = cbind(BN06H1,G97H, G97F,GR84H,JS00HA,R77H,S80HCF,S80HCR,S80HMF,S93HA,Sabo02H,W13H)
if (Eq == "S93LG") out <- S93LG
if (Eq == "S93LM") out <- S93LM
if (Eq == "BN06L") out <- BN06L
if (Eq == "G97L") out <- G97L
if (Eq == "JS00L") out <- JS00L
if (Eq == "R77L") out <- R77L
if (Eq == "S80LCF") out <- S80LCF
if (Eq == "S80LCR") out <- S80LCR
if (Eq == "S80LMF") out <- S80LMF
if (Eq == "S93LA") out <- S93LA
if (Eq == "W13L") out <- W13L
if (Eq == "S93LC") out <- S93LC
if (Eq == "S93LN") out <- S93LN
if (Eq == "LEP") out <- cbind(BN06L,G97L,JS00L,R77L,S80LCF, S80LCR,S80LMF,S93LA,W13L)
if (Eq == "Noctuidea") out <- cbind(S93LC, S93LN)
out
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.