# Body size prediction in scorpions: a phylogenetic comparative examination of linear measurements of individual body parts # R functions for size predictions in scorpions # Stenio I. A. Foerster # 12 Sep 2024 # stenio.foerster@ut.ee | stenioit@gmail.com # This file contains four functions for predicting total lenght and carapace lenght in scorpions. # The user has to supply the values for the linear measurements in mm. The predicted values # are returned in mm. # Functions --------------------------------------------------------------- # This is the R function for predicting total lenght (in mm) using a single predictor simple_toL <- function(values_mm, predictor = "met5l") { if (predictor == "met5l") { return(exp(2.126 + log(values_mm) * 0.949)) } if (predictor == "carl") { return(exp(2.178 + log(values_mm) * 1.006)) } if (predictor == "tel") { return(exp(2.322 + log(values_mm) * 0.903)) } if (predictor == "chel") { return(exp(2.275 + log(values_mm) * 0.725)) } if (predictor == "tew") { return(exp(3.286 + log(values_mm) * 0.815)) } if (predictor == "chew") { return(exp(3.401 + log(values_mm) * 0.630)) } if (predictor == "met5w") { return(exp(3.131 + log(values_mm) * 0.710)) } } # This is the R function to predict total length (in mm) from two predictors multi_toL <- function(met5l_mm, secPred_mm, second_predictor = "chew") { if (second_predictor == "chew") { return(exp(2.331 + log(met5l_mm) * 0.767 + log(secPred_mm) * 0.196)) } if (second_predictor == "tew") { return(exp(2.497 + log(met5l_mm) * 0.619 + log(secPred_mm) * 0.344)) } if (second_predictor == "met5w") { return(exp(2.235 + log(met5l_mm) * 0.783 + log(secPred_mm) * 0.204)) } if (second_predictor == "tel") { return(exp(2.165 + log(met5l_mm) * 0.472 + log(secPred_mm) * 0.491)) } if (second_predictor == "chel") { return(exp(2.041 + log(met5l_mm) * 0.739 + log(secPred_mm) * 0.218)) } } # This is the R function for predicting carapace lenght (in mm) using a single predictor simple_carL <- function(values_mm, predictor = "met5l") { if (predictor == "met5l") { return(exp(0.105 + log(values_mm) * 0.849)) } if (predictor == "carl") { return(exp(2.178 + log(values_mm) * 1.006)) } if (predictor == "tel") { return(exp(0.235 + log(values_mm) * 0.839)) } if (predictor == "chel") { return(exp(0.222 + log(values_mm) * 0.658)) } if (predictor == "tew") { return(exp(1.116 + log(values_mm) * 0.775)) } if (predictor == "chew") { return(exp(1.222 + log(values_mm) * 0.603)) } if (predictor == "met5w") { return(exp(0.946 + log(values_mm) * 0.711)) } } # This is the R function to predict carapace length (in mm) from two predictors multi_carL <- function(tel_mm, secPred_mm, second_predictor = "met5w") { if (second_predictor == "chew") { return(exp(0.390 + log(tel_mm) * 0.681 + log(secPred_mm) * 0.172)) } if (second_predictor == "tew") { return(exp(0.576 + log(tel_mm) * 0.493 + log(secPred_mm) * 0.362)) } if (second_predictor == "met5w") { return(exp(0.337 + log(tel_mm) * 0.653 + log(secPred_mm) * 0.224)) } if (second_predictor == "met5l") { return(exp(0.188 + log(tel_mm) * 0.727 + log(secPred_mm) * 0.131)) } if (second_predictor == "chel") { return(exp(0.147 + log(tel_mm) * 0.702 + log(secPred_mm) * 0.150)) } }