Nothing
      #' Check FinBIF taxa
#'
#' Check that taxa are in the FinBIF database.
#'
#' @aliases fb_check_taxa
#'
#' @param taxa Character (or list of named character) vector(s). If a list each
#'   vector can have the name of a taxonomic rank (genus, species, etc.,).
#'   The elements of the vectors should be the taxa to check.
#' @param cache Logical or Integer. If `TRUE` or a number greater than zero,
#'   then data-caching will be used. If not logical then cache will be
#'   invalidated after the number of hours indicated by the argument.
#' @return An object of class `finbif_taxa`. A list with the same form as
#'   `taxa`.
#' @examples \dontrun{
#'
#' # Check a scientific name
#' finbif_check_taxa("Cygnus cygnus")
#'
#' # Check a common name
#' finbif_check_taxa("Whooper swan")
#'
#' # Check a genus
#' finbif_check_taxa("Cygnus")
#'
#' # Check a list of taxa
#' finbif_check_taxa(
#'   list(
#'     species = c("Cygnus cygnus", "Ursus arctos"),
#'     genus   = "Betula"
#'   )
#' )
#' }
#' @export
finbif_check_taxa <- function(
  taxa,
  cache = getOption("finbif_use_cache")
) {
  taxa_list <- as.list(taxa)
  taxa_list_names <- names(taxa_list)
  taxa_list_names <- tolower(taxa_list_names)
  has_names <- length(taxa_list_names) > 0L
  for (i in seq_along(taxa_list)) {
    taxa_list_name <- character()
    if (has_names) {
      taxa_list_name <- taxa_list_names[[i]]
    }
    taxa_list_name_length <- length(taxa_list_name)
    no_name <- identical(taxa_list_name_length, 0L)
    taxa_i <- taxa_list[[i]]
    taxa_names <- taxa_i
    for (j in seq_along(taxa_i)) {
      id <- NA_character_
      taxon <- taxa_i[[j]]
      resp <- finbif_taxa(taxon, cache = cache)
      if (length(resp[["content"]]) > 0L) {
        content <- resp[["content"]][[1L]]
        check_rank_obj <- list(name = taxa_list_name, rank = content)
        if (no_name || check_rank(check_rank_obj)) {
          id <- content[["id"]]
        }
      }
      taxa_i[[j]] <- id
    }
    names(taxa_i) <- taxa_names
    taxa_list[[i]] <- taxa_i
  }
  if (has_names) {
    names(taxa_list) <- taxa_list_names
  }
  structure(taxa_list, class = c("list", "finbif_taxa_list"))
}
#' @noRd
check_rank <- function(obj) {
  rank <- sub("MX.", "", obj[[c("rank", "taxonRank")]])
  identical(obj[["name"]], rank)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.