bmc


library("knitr")
hook_output <- knitr::knit_hooks$get("output")
knitr::knit_hooks$set(output = function(x, options) {
   lines <- options$output.lines
   if (is.null(lines)) {
     return(hook_output(x, options))  # pass to default hook
   }
   x <- unlist(strsplit(x, "\n"))
   more <- "..."
   if (length(lines)==1) {        # first n lines
     if (length(x) > lines) {
       # truncate the output, but add ....
       x <- c(head(x, lines), more)
     }
   } else {
     x <- c(if (abs(lines[1])>1) more else NULL, 
            x[lines], 
            if (length(x)>lines[abs(length(lines))]) more else NULL
           )
   }
   # paste these lines together
   x <- paste(c(x, ""), collapse = "\n")
   hook_output(x, options)
 })

knitr::opts_chunk$set(
  comment = "#>",
  collapse = TRUE,
  warning = FALSE, 
  message = FALSE
)

Project Status: Active – The project has reached a stable, usable state and is being actively developed. GitHub 0.1.9999

An R interface to BMC search API and full text XML

API DOCS: http://www.biomedcentral.com/about/api

No API key is required to use the BMC API.

Package Status and Installation

AppVeyor Build Status Travis-CI Build Status codecov rstudio mirror downloads

Installation instructions

Development Version

install.packages("devtools")
devtools::install_github("ropensci/bmc")

Usage

library("bmc")

Search

out <- bmc_search(terms = 'fire', limit=2)
out@results$entries[[1]]

The object returned from bmc_search is an object of class bmc. The default print gives back a list of length N, where each element has the contents for the article in question. We can inspect further elements of the bmc object with the @ symbol. We can get the urls element...

out@urls

...which has the urls you can use to go the paper in a browser

browseURL(out@urls[1])

which opens the paper in your default browser

We can also inspect the ids element, which has a list equal to the number you requested, where each element is of length 2, with a arxId, and a url. These two are used to construct the download url if you use bmc_xml.

out@ids

Get full text XML

You can either pass in a url to the uris parameter in the bmc_xml function, or pass in the output of the bmc_search function to bmc_xml using the first parameter obj. First, passing in a url:

uri <- 'http://www.biomedcentral.com/content/download/xml/1471-2393-14-71.xml'
bmc_xml(uris=uri)

Now the output from bmc_search()

out <- bmc_search(terms = 'science', limit=5)
dat <- bmc_xml(out)
length(dat)

Inspect the xml

dat[[1]]

Parse and search XML

Once you have XML content, you can go to work with e.g., xpath.

uri <- 'http://www.biomedcentral.com/content/download/xml/1471-2393-14-71.xml'
xml <- bmc_xml(uris=uri)
library("XML")
xpathApply(xml[[1]], "//abs", xmlValue)

Meta


This package is part of a richer suite called fulltext, along with several other packages, that provides the ability to search for and retrieve full text of open access scholarly articles. We recommend using fulltext as the primary R interface to bmc unless your needs are limited to this single source.


Citation

Get citation information for bmc in R by running: citation(package = 'bmc')

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

ropensci_footer



ropensci/bmc documentation built on May 18, 2022, 9:48 a.m.