Learn R Programming

fulltext (version 2.0)

ft_links: Get full text links

Description

Get full text links

Usage

ft_links(x, from = NULL, ...)

ft_links_ls()

Arguments

x

One of ft, ft_ind, or a character string of DOIs.

from

Source to query. Ignored when ft_ind class passed.

...

curl options passed on to crul::HttpClient (plos, bmc, crossref) or httr::GET() (entrez), see examples below

Value

An object of class ft_links, with either a list or data.frame for each DOI, with links for XML and PDF links (typically).

Details

Inputs can be an object of class ft, ft_ind, or a character string of DOIs. You can specify a specific source for four sources (PLOS, BMC, Crossref, and Entrez), but any other publishers we guess the publisher form the input DOI(s), then attempt to generate full text links based on the publisher (if found). Of course, guessing the publisher makes things slower as it requires an HTTP request.

Strategy varies by publisher. For some we can construct XML and PDF links only from the DOI. For others, we need to make an HTTP request to the publisher to get additional information - this of course makes things slower.

See Rate Limits and Authentication in fulltext-package for rate limiting and authentication information, respectively

Examples

Run this code
# NOT RUN {
# List publishers included
ft_links_ls()

# }
# NOT RUN {
# Entrez
(res1 <- ft_search(query='ecology', from='entrez'))
res1$entrez$data$doi
## directly from ft_search output
(out <- ft_links(res1))
out$entrez
out$entrez$data[[1]]
## directly individual elements of ft_search output
(out <- ft_links(res1$entrez))
out$entrez
## from character vector of DOIs
x <- c("10.1371/journal.pone.0086169", "10.1016/j.ympev.2010.07.013")
(out2 <- ft_links(x, from = "entrez"))
out2$entrez

# Crossref
(res2 <- ft_search(query='ecology', from='crossref'))
res2$crossref$data$doi
## directly from ft_search output
(out <- ft_links(res2))
out$crossref
out$crossref$data[[1]]
## directly individual elements of ft_search output
(out <- ft_links(res2$crossref))
out$crossref
## from character vector of DOIs
x <- c("10.1016/s1754-5048(14)00139-1", 
       "10.1016/b978-0-12-378260-1.50017-8")
(out2 <- ft_links(x, from = "crossref"))
out2$crossref

# PLOS
(res3 <- ft_search(query='ecology', from='plos', plosopts=list(
   fl=c('id','author','eissn','journal','counter_total_all',
        'alm_twitterCount'))))
res3$plos$data$id
## directly from ft_search output
(out <- ft_links(res3))
out$plos
out$plos$data[[1]]
## directly individual elements of ft_search output
(out <- ft_links(res3$plos))
out$plos
## from character vector of DOIs
x <- c("10.1371/journal.pone.0017342", "10.1371/journal.pone.0091497")
out3 <- ft_links(x)
out3$plos

# BMC
(res <- ft_search(query='ecology', from='bmc'))
res$bmc
## directly from ft_search output
(out <- ft_links(res))
out$bmc
out$bmc$data[[1]]
## directly individual elements of ft_search output
(out <- ft_links(res$bmc))
out$bmc

# Character input
out4 <- ft_links('10.1371/journal.pone.0086169')
out4$plos

# other publishers
## elife
res <- ft_links(c('10.7554/eLife.03032', '10.7554/eLife.02747'))
res$elife

## peerj
ft_links('10.7717/peerj.228')
ft_links(c('10.7717/peerj.228', '10.7717/peerj.1200'))

## wiley
res <- ft_links('10.1006/asle.2001.0035', from = "crossref")
res$crossref$data[[1]]$url

## informa
res <- ft_links('10.1174/02134749660569378', from = "crossref")
res$crossref$data[[1]]$url

## frontiersin
(res <- ft_links('10.3389/fphar.2014.00109'))
res$frontiersin

## copernicus
(res <- ft_links('10.5194/angeo-31-2157-2013'))
res$copernicus

## cogent
(res <- ft_links('10.1080/23311916.2014.938430'))
res$informa

## bmc
(res <- ft_links('10.1186/2049-2618-2-7'))
res$springer
(res <- ft_links('10.1186/2049-2618-2-7', from = "bmc"))

## Many publishers, elife and peerj
res <- ft_links(c('10.7554/eLife.03032', '10.7717/peerj.228'))
res$elife
res$peerj


# curl options
ft_links("10.2458/v17i1.21696", from = "crossref", verbose = TRUE)
# }

Run the code above in your browser using DataLab