作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 PubMed 中的搜索词收集作者信息和文章信息。我正在使用 entrez_fetch
成功获取作者姓名、出版年份和其他信息在 rentrez
包裹。以下是我的示例代码:
library(rentrez)
library(XML)
pubmedSearch <- entrez_search("pubmed", term = "flexible ureteroscope", retmax = 100)
SearchResults <- entrez_fetch(db="pubmed", pubmedSearch$ids, rettype="xml", parsed=TRUE)
First_Name <- xpathSApply(SearchResults, "//Author", function(x) {xmlValue(x[["ForeName"]])})
Last_Name <- xpathSApply(SearchResults, "//Author", function(x) {xmlValue(x[["LastName"]])})
PubYear <- xpathSApply(SearchResults, "//PubDate", function(x) {xmlValue(x[["Year"]])})
PMID <- xpathSApply(SearchResults, "//ArticleIdList", function(x) {xmlValue(x[["ArticleId"]])})
PMID First_Name Last_Name PubYear
28221147 Carlos Torrecilla Ortiz 2017
28221147 Sergi Colom Feixas 2017
28208536 Dean G Assimos 2017
28203551 Chad M Gridley 2017
28203551 Bodo E Knudsen 2017
XML
收集更多信息通过
entrez_fetch
解析在
rentrez
包裹。
最佳答案
这实际上是一个关于 xpath(用于在 XML 文件中指定这些节点的语言)的问题,我并不声称自己是这方面的专家。但我想我可以在这种情况下提供帮助。
您希望确保一次为一条已发布的记录(PubmedArticle
条目)提取信息。您可以编写一个函数来为一条记录执行此操作
parse_paper <- function(paper){
last_names <- xpathSApply(paper, ".//Author/LastName", xmlValue)
first_names <- xpathSApply(paper, ".//Author/ForeName", xmlValue)
pmid <- xpathSApply(paper, ".//ArticleId[@IdType='pubmed']", xmlValue)
data.frame(pmid=pmid, last_names=last_names, first_names=first_names)
}
parse_multiple_papers <- function(papers){
res <- xpathApply(papers, "/PubmedArticleSet/*", parse_paper)
do.call(rbind.data.frame, res)
}
head(parse_multiple_papers(SearchResults))
pmid last_names first_names
1 28221147 Torrecilla Ortiz Carlos
2 28221147 Colom Feixas Sergi
3 28208536 Assimos Dean G
4 28203551 Gridley Chad M
5 28203551 Knudsen Bodo E
6 28101159 Li Zhi-Gang
rentrez
的任何问题。在
github repo 作为问题提交(他们不必是“错误”才能去那里)。
关于r - 在rentrez中使用entrez_fetch解析PubMed XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430519/
我是一名优秀的程序员,十分优秀!