4

我正在使用 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"))
4

2 回答 2

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 函数的调用应该保持这个顺序,所以这可能是跟踪相关信息的最简单(唯一?)的方法吗?

于 2016-08-01T03:28:10.620 回答
1

extract_from_esummary用于paper_data摘要并调用选定的参数。在你的情况下,它是pubdate.

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

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

对你来说不幸的是,我看不到任何与相关性相似的东西。

于 2016-07-04T10:57:02.320 回答