Nothing
#' Parse scientific names using EOL's name parser.
#'
#' @export
#' @param names A vector of length 1 or more of taxonomic names
#' @param ... Curl options passed on to [crul::verb-GET]
#' @return A data.frame with results, the submitted names, and the
#' parsed names with additional information.
#' @seealso [gbif_parse()], [gn_parse()]
#' @references http://gni.globalnames.org/
#' @examples \dontrun{
#' gni_parse("Cyanistes caeruleus")
#' gni_parse("Plantago minor")
#' gni_parse("Plantago minor minor")
#' gni_parse(c("Plantago minor minor","Helianthus annuus texanus"))
#'
#' # pass on curl options
#' gni_parse("Cyanistes caeruleus", verbose = TRUE)
#' }
gni_parse <- function(names, ...) {
names <- paste0(names, collapse = "|")
cli <- crul::HttpClient$new(paste0(gni_base(), "parsers.json"),
headers = tx_ual, opts = list(...))
tt <- cli$get(query = list(names = names))
tt$raise_for_status()
out <- jsonlite::fromJSON(tt$parse("UTF-8"), FALSE)
dt2df(lapply(out, gni_parser), idcol = FALSE)
}
gni_parser <- function(x) {
positions_names <- vapply(x$scientificName$positions, function(y)
paste("position_", y[[1]], sep = ""), "", USE.NAMES = FALSE)
nums <- vapply(x$scientificName$positions, function(y) y[[2]], 1,
USE.NAMES = FALSE)
pv <- data.frame(as.list(setNames(nums, positions_names)),
stringsAsFactors = FALSE)
nmz <- c("verbatim","canonical", "normalized","hybrid","parsed")
singles <- data.frame(x$scientificName[names(x$scientificName) %in% nmz],
stringsAsFactors = FALSE)
details2 <- data.frame()
if (x$scientificName$parsed) {
details_ <- x$scientificName$details[[1]]
details_ <- details_[!names(details_) %in% 'status']
details <- dt2df(Map(function(x, y) data.frame(y, x,
stringsAsFactors = FALSE), details_, names(details_)),
idcol = FALSE)[,-3]
details2 <- as.data.frame(t(data.frame(details[,2])))
names(details2) <- details[,1]
row.names(details2) <- NULL
}
data.frame(Filter(NROW, list(details2, singles, pv)),
stringsAsFactors = FALSE)
}
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.