R/fd_chull.R

Defines functions fd_chull

# A wrapper around geometry::convhulln() to properly handle errors and specific
# cases
#' @importFrom geometry convhulln
fd_chull <- function(traits) {

  traits <- traits[!duplicated(traits),, drop = FALSE]

  if (ncol(traits) == 1L) {
   return(list(
     "hull" = c(which.min(traits), which.max(traits)),
     "area" = max(traits) - min(traits),
     "vol" = max(traits) - min(traits),
     p = traits
   ))
  }

  if (nrow(traits) <= ncol(traits)) {
    return(list(
      "hull" = seq_len(nrow(traits)),
      "area" = NA_real_,
      "vol" = NA_real_,
      p = traits
    ))
  }

  return(convhulln(traits, "FA"))

}

Try the fundiversity package in your browser

Any scripts or data that you put into this service are public.

fundiversity documentation built on Nov. 21, 2022, 5:07 p.m.