I have recently been using the excellent rplos
package, which makes it very easy to search through papers hosted on the Public Library of Science (PLOS) API. I've hit a snag, in that the API itself seems to have some missing information - a major one being that there are at least 2012 papers on the API for which there is no information in the "journal" field. I have the DOIs of each paper, so it is simple to Google the DOI and show that these are real papers published in real journals, usually PLoS ONE. Obviously it would be silly to do that 2000 times.
I was wondering if anyone knows how to find the source journal, if I have the list of DOIs? I looked into the RISmed package, which can apparently search PubMed from within R, but I could not work out how to make it give useful information (just the number of search hits, and some PubMed IDs that probably lead to the info I want).
Anyone know how to turn the list of DOIs into source journal names?
EDIT: I just thought of another easy solution. DOIs contain an abbreviation of the journal name, and for a case like this where there are only a handful of journals, one can just use regular expressions to read the DOIs and pick which journal they are from. Example: 10.1371/journal.pone.0046711 is from PLoS ONE.
this is the rplos creator...
Check out the dataset that comes with the package
plosfields
which gives you the fields that can be searched, and given backTwo fields of interest for journal name are
journal
andcross_published_journal_key
. For example,Does this do what you want?
In terms of getting more information from DOIs
rmetadata
is in development, but could be of use. Also we're working on a package for Crossref,rcrossref
. (https://github.com/ropensci/rcrossref) - but it seems like the above does what you want easier, getting the journal name.Here is my solution, which can be used in a for loop or other approaches to extract titles from DOIs:
Hope it helps!
Here's an answer based on Thomas' suggestion to try rpubmed. It starts with a list of the problematic DOIs, finds the matching PubMed ID numbers using the EUtilsSummary function in RISmed, and then getting the journal data associated with these using code modified from the Github for rpubmed and reproduced below. Sorry for editing the rpubmed code, but the objects on line 44 do not seem to be defined or essential so I took them out.