按相关性对 rentrez 中的公开搜索进行排序
Sort pubmed searches from rentrez by relevance
我正在使用 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_from_esummary
用于 paper_data
摘要并调用选定的参数。在你的情况下是 pubdate
.
当您检查 paper_data
的结构时,例如通过使用 str(paper_data)
然后你会注意到你可以作为 extract_from_esummary
的第二个参数的元素,例如按 ISSN 排序:
issn <- extract_from_esummary(paper_data, c("issn"))
很遗憾,我看不到任何与相关性相似的内容。
据我了解,"relevance" 信息与给定的搜索相关联(不是记录摘要或稍后可能下载的完整记录),并且没有分数或类似说明给定的相关性如何搜索结果在 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)
.
[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
稍后调用摘要、获取和 link 函数应保持此顺序,因此这可能是跟踪相关信息的最简单(唯一?)方法?
我正在使用 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_from_esummary
用于 paper_data
摘要并调用选定的参数。在你的情况下是 pubdate
.
当您检查 paper_data
的结构时,例如通过使用 str(paper_data)
然后你会注意到你可以作为 extract_from_esummary
的第二个参数的元素,例如按 ISSN 排序:
issn <- extract_from_esummary(paper_data, c("issn"))
很遗憾,我看不到任何与相关性相似的内容。
据我了解,"relevance" 信息与给定的搜索相关联(不是记录摘要或稍后可能下载的完整记录),并且没有分数或类似说明给定的相关性如何搜索结果在 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)
.
[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
稍后调用摘要、获取和 link 函数应保持此顺序,因此这可能是跟踪相关信息的最简单(唯一?)方法?