首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rentrez从pubmed中解析出作者和从属关系

使用rentrez从pubmed中解析出作者和从属关系
EN

Stack Overflow用户
提问于 2017-02-23 01:56:37
回答 3查看 586关注 0票数 3

我的总体目标是建立一个共同作者网络图。我有一个PubMed ID的列表,这些是我唯一感兴趣的出版物,用于绘制联合作者网络的图表。我不知道如何在我的查询中使用rentrez同时获得作者姓名和各自的从属关系。我可以得到这两个信息,但我的从属关系列表比我的作者列表少了大约300人,所以很明显,有些人没有提供从属关系,但我不知道是谁。有没有办法同时搜索作者和从属关系?当我在我的entrez_fetch中做这两件事时,它只给了我一个单独的作者和从属关系列表,所以我仍然不能弄清楚哪些从属关系属于哪些作者。

代码语言:javascript
复制
library(tidyverse)
library(rentrez)
library(XML)

trial<-entrez_fetch(db="pubmed", id=pub.list$PMID, rettype="xml", parsed=TRUE)
affiliations<-xpathSApply(trial, "//Affiliation", xmlValue)
first.names<-xpathSApply(trial, "//Author/ForeName", xmlValue)

这一切都很好,但我不能弄清楚哪些作者属于哪个从属关系,因为他们的长度不同。

任何帮助都将不胜感激。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-23 02:22:17

您可以尝试如下所示:

代码语言:javascript
复制
xpathSApply(trial, "//Author", function(x) {
  author_name <- xmlValue(x[["LastName"]])
  author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])
  c(author_name,author_affiliation)
  })

它通过为每个//Author节点获取这些值,在第一行返回作者的姓氏,在第二行返回作者的从属关系。

票数 1
EN

Stack Overflow用户

发布于 2017-02-23 02:51:28

代码语言:javascript
复制
last.name<-xpathSApply(trial, "//Author", function(x) {
  author_name <- xmlValue(x[["LastName"]])})

affiliation<-xpathSApply(trial, "//Author", function(x) {
  author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])})

这就是我最终使用的,遵循NicE的格式,并且它起作用了--我可以看到NA代表从属关系的位置。

票数 0
EN

Stack Overflow用户

发布于 2018-07-15 02:44:30

我采用了@NicE的代码和@Shirley的评论,并编写了以下代码:

代码语言:javascript
复制
lastname_affiliation <-data.frame(cbind(
    xpathSApply(trial, "//Author", function(x) {
        author_name <- xmlValue(x[["LastName"]])
    }), 
    xpathSApply(trial, "//Author", function(x) {
        author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])
    })
))

谢谢你让我走上了正确的道路。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42398935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档