The goal of rscopus is to provide an R Scopus Database API Interface.
In order to use this package, you need an API key from https://dev.elsevier.com/sc_apis.html. You should login from your institution and go to Create API Key. You need to provide a website URL and a label, but the website can be your personal website, and agree to the terms of service.
rscopus key
. Add a website. http://example.com is fine if you do not have a
site.Elsevier_API = "API KEY GOES HERE"
to
~/.Renviron
file, or add
export Elsevier_API=API KEY GOES HERE
to your
~/.bash_profile
.Alternatively, you you can either set the API key using
rscopus::set_api_key
or by
options("elsevier_api_key" = api_key)
. You can access the
API key using rscopus::get_api_key
.
You should be able to test out the API key using the interactive Scopus APIs.
The API Key is bound to a set of IP addresses, usually bound to your institution. Therefore, if you are using this for a Shiny application, you must host the Shiny application from your institution servers in some way. Also, you cannot access the Scopus API with this key if you are offsite and must VPN into the server or use a computing cluster with an institution IP.
This is a basic example which shows you how to solve a common problem:
library(rscopus)
library(dplyr)
authorized = is_elsevier_authorized()
if (have_api_key()) {
x = abstract_retrieval("S1053811915002700", identifier = "pii",
verbose = FALSE)
res = bibtex_core_data(x)
cat(res)
if (authorized) {
res = author_df(last_name = "Muschelli", first_name = "John", verbose = FALSE, general = FALSE)
names(res)
head(res[, c("title", "journal", "description")])
unique(res$au_id)
unique(as.character(res$affilname_1))
all_dat = author_data(last_name = "Muschelli",
first_name = "John", verbose = FALSE, general = TRUE)
res2 = all_dat$df
res2 = res2 %>%
rename(journal = `prism:publicationName`,
title = `dc:title`,
description = `dc:description`)
head(res[, c("title", "journal", "description")])
}
}