Nothing
### ctrdata package
#' Find synonyms of an active substance
#'
#' An active substance can be identified by a recommended international
#' nonproprietary name (INN), a trade or product name, or a company code(s).
#' Retrieves the names of substance which are searched for by "CTGOV"
#' when querying for a given active substance.
#'
#' @param activesubstance An active substance, in an atomic character vector
#'
#' @return A character vector of the active substance (input parameter) and
#' synonyms, or NULL if active substance was not found and may be invalid
#'
#' @importFrom httr GET set_config user_agent
#' @importFrom utils packageDescription
#' @importFrom xml2 read_html xml_find_all xml_text
#'
#' @export
#'
#' @examples
#' \dontrun{
#'
#' ctrFindActiveSubstanceSynonyms(activesubstance = "imatinib")
#' # [1] "imatinib" "gleevec" "sti 571" "glivec" "CGP 57148" "st1571"
#' }
ctrFindActiveSubstanceSynonyms <- function(activesubstance = "") {
# check parameters
if ((length(activesubstance) != 1L) ||
!is.character(activesubstance) ||
(nchar(activesubstance) == 0L)) {
stop("ctrFindActiveSubstanceSynonyms(): ",
"activesubstance should be a single string.",
call. = FALSE
)
}
# getting synonyms using httr since rvest::read_html
# does not close network connection in case of 404
ctgovfirstpageurl <-
utils::URLencode(
paste0(
"https://classic.clinicaltrials.gov/ct2/results/details?term=",
activesubstance
)
)
# set user agent for httr and curl to inform registers
httr::set_config(httr::user_agent(
paste0(
"ctrdata/", utils::packageDescription("ctrdata")$Version,
" (https://cran.r-project.org/package=ctrdata)"
)
))
# get webpage
tmp <- try(
{
httr::GET(url = ctgovfirstpageurl)
},
silent = TRUE
)
# check result
if (inherits(tmp, "try-error") || tmp[["status_code"]] == 404L) {
# 404 means active substance not found, thus early exit
message("Check active substance '", activesubstance, "', may not exist.")
return(NULL)
}
# extract from table "Terms and Synonyms Searched:"
asx <- xml2::read_html(tmp)
asx <- xml2::xml_find_all(asx, '//*[@id="searchdetail"]/div[1]/div/table[1]/tbody/tr/td[1]')
asx <- trimws(xml2::xml_text(asx))
# prepare and return output
asx <- c(activesubstance, asx)
return(unique(asx))
}
# end ctrFindActiveSubstanceSynonyms
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.