根据相关性从rentrez排序发布的搜索

时间:2016-07-04 10:10:10

标签: r sorting ncbi pubmed rentrez

我正在使用R中的 rentrez 包搜索PubMed,并希望按相关性对结果进行排序。目前,它们按出版日期排序。

library(rentrez)

query = 'regression to the mean[TITL]'
entrez_search = entrez_search(db="pubmed", term=query, retmax=30)
paper_data = entrez_summary(db="pubmed", id=entrez_search$ids)
dates = extract_from_esummary(paper_data, c("pubdate"))

2 个答案:

答案 0 :(得分:3)

根据我的理解,“相关性”信息与给定的搜索相关联(不是记录摘要或可能稍后下载的完整记录),并且没有得分或类似的说明给定搜索结果的相关性。 entrez搜索返回的数据。

另一方面,我认为sort=relevance论证正在做点什么。如果您发送两次相同的搜索,则ID的顺序相同:

default_search = entrez_search(db="pubmed", term=query, retmax=30)
default_search_again = entrez_search(db="pubmed", term=query, retmax=30)
all(default_search$ids == default_search_again$ids)

[1] TRUE

而将订单设置为relevance会更改订单:

rel_search = entrez_search(db="pubmed", term=query, retmax=30, sort="relevance")
default_search$ids == rel_search$ids

 [1]  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE
[13] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
[25] FALSE FALSE  TRUE  TRUE FALSE FALSE

稍后调用summary,fetch和link函数应保持此顺序,因此这可能是跟踪相关性信息的最简单(唯一?)方式?

答案 1 :(得分:1)

extract_from_esummary用于paper_data整体,并且正在调用选定的参数。在你的情况下,它是pubdate

检查paper_data的结构时,例如通过使用str(paper_data),您会注意到您可以作为extract_from_esummary的第二个参数的元素,例如按ISSN排序:

issn <- extract_from_esummary(paper_data, c("issn"))

不幸的是,我无法看到任何类似相关性的内容。