Nothing
#' Get APG names
#'
#' Generic names and their replacements from the Angiosperm Phylogeny
#' Group III system of flowering plant classification.
#'
#' @param ... Curl args passed on to [crul::verb-GET]
#' @references http://www.mobot.org/MOBOT/research/APweb/
#' @name apg
#' @examples \dontrun{
#' head(apgOrders())
#' head(apgFamilies())
#' }
#' @export
#' @rdname apg
apgOrders <- function(...) {
tt <- apg_GET("orders", ...)
tmp <- strsplit(tt, "<font")[[1]]
tmp2 <- strsplit(tmp[length(tmp)], "<br>")[[1]]
tmp3 <- gsub("(<[^>]*>)|\r|\n|\\.$", "", tmp2)
# remove stuff not cleaned up
tmp4 <- tmp3[-grep("Back to", tmp3)]
tmp5 <- sub(".*>", "", tmp4)
# parse to a data.frame
accorig <- acc <- grep("[Aa]ccepted", tmp5, value = TRUE)
acc <- gsub("\\s.+", "", strtrim(acc))
acc <- acc[nchar(acc) != 0]
accorig <- accorig[nchar(accorig) != 0]
accdf <- data.frame(order = acc, synonym = NA,
accepted = TRUE,
original = accorig, stringsAsFactors = FALSE)
synorig <- syn <- grep("[Aa]ccepted", tmp5, invert = TRUE, value = TRUE)
syn <- sapply(strsplit(syn, "=|\\s-"), strtrim)
syn <- syn[vapply(syn, length, 1) != 0]
synorig <- synorig[nchar(synorig) != 0]
syndf <- dt2df(lapply(syn, function(x) {
tmpdf <- rbind.data.frame(x)
if (NCOL(tmpdf) == 2) {
setNames(tmpdf, c("order", "synonym"))
} else {
setNames(tmpdf, c("order", "synonym", "comment"))
}
}), idcol = FALSE)
syndf$accepted <- FALSE
syndf$original <- synorig
rbind(accdf, syndf)
}
#' @export
#' @rdname apg
apgFamilies <- function(...) {
tt <- apg_GET("families", ...)
tmp <- strsplit(tt, "<font")[[1]]
tmp2 <- strsplit(tmp[length(tmp)], "<br>|<br")[[1]]
# look for any lines missing a <br> tag, and split
tmp2 <- unlist(lapply(tmp2, function(z) {
if (grepl("</a>\r", z)) {
dd <- strsplit(z, "\r\n")[[1]]
dd[nchar(dd) != 0]
} else {
z
}
}))
# remove html tags
tmp3 <- gsub("(<[^>]*>)|\r|\n|\\.$", "", tmp2)
# remove stuff not cleaned up
tmp4 <- tmp3[-grep("Back to", tmp3)]
tmp5 <- sub(".*>", "", tmp4)
# parse to a data.frame
syn <- sapply(strsplit(tmp5, "=|\\s-"), strtrim)
syn <- syn[vapply(syn, length, 1) != 0]
synorig <- tmp5[nchar(tmp5) != 0]
syndf <- dt2df(lapply(syn, function(x) {
tmpdf <- rbind.data.frame(x)
if (NCOL(tmpdf) == 2) {
setNames(tmpdf, c("family", "order"))
} else {
setNames(tmpdf, c("family", "synonym", "order"))
}
}), idcol = FALSE)
syndf[] <- lapply(syndf, as.character)
syndf$accepted <- syndf$synonym
syndf$accepted[is.na(syndf$accepted)] <- TRUE
syndf$accepted[ syndf$accepted != TRUE ] <- FALSE
syndf$accepted <- as.logical(syndf$accepted)
syndf$original <- synorig
syndf
}
apg_GET <- function(x, ...) {
cli <- crul::HttpClient$new(apg_base(),
headers = tx_ual, opts = list(...))
res <- cli$get(sprintf("MOBOT/research/APweb/top/synonymy%s.html", x))
res$raise_for_status()
res$parse("UTF-8")
}
apg_base <- function() "http://www.mobot.org"
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.