R/normalize_doi.R

Defines functions dois_lookup doi_lookup dois_store doi_store doi_normalize

# normalize DOI
## id: a single DOI
doi_normalize <- function(id) {
  id_norm <- gsub("/|\\.|-|:|;|\\(|\\)|<|>", "_", id)
  doi_store(id, id_norm)
  return(id_norm)
}

# store a DOI
## ids: a single DOI
## id_norm: a single normalized DOI
doi_store <- function(id, id_norm) {
  fulltext_store$set(id_norm, id)
}
## ids: a vector of DOIs
## id_norm: a vector of normalized DOIs
dois_store <- function(ids, id_norm) {
  fulltext_store$mset(id_norm, ids)
}

# lookup a DOI
## id_norm: a normalized DOI
doi_lookup <- function(id_norm) {
  fulltext_store$get(id_norm)
}
## ids_norm: a vector of normalized DOIs
## - returns NA's for items not found, so function shouldn't fail
dois_lookup <- function(ids_norm) {
  data.frame(
    dois = unlist(fulltext_store$mget(ids_norm, missing = NA_character_)), 
    ids_norm = ids_norm, 
    stringsAsFactors = FALSE
  )
}

Try the fulltext package in your browser

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

fulltext documentation built on June 12, 2021, 9:06 a.m.