按相关性对rentrez中的pubmed搜索进行排序

按相关性对rentrez中的pubmed搜索进行排序,r,sorting,ncbi,pubmed,rentrez,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 = e

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

extract\u from\u essummary
用于
纸张数据
essummary,并调用所选参数。在您的情况下,它是
pubdate

当您检查
纸面数据的结构时,例如使用
str(纸面数据)
时,您将注意到可以作为
从摘要中提取的第二个参数的元素,例如按ISSN排序:

issn <- extract_from_esummary(paper_data, c("issn"))
issn据我所知,“相关性”信息与给定的搜索相关(而不是记录摘要或稍后可能下载的完整记录),并且没有分数或类似的说法说明给定的搜索结果与entrez search返回的数据有多大的相关性

另一方面,我认为
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)

而将顺序设置为
相关性
会更改顺序:

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


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

我可以将sort='relevance'选项添加到entrez_search命令中(如下所述),但这不起作用。正如我前面提到的,我在从PubMed获取的信息中看不到“相关性”元素。我使用了
ent\u search=entrez\u search(db=“pubmed”,term=query,retmax=30,sort=“relevance”)
,然后
paper\u data=entrez\u summary(db=“pubmed”,id=ent\u search$id)
paper\u data[1]
返回了43个项目(uid、pubdate、epubdate、source、authors、lastauthor、title等),但没有类似于“相关性”的内容。
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