RISmed包EUtilsSummary函数报错:'length = 4'强制转换问题求助
解决RISmed包EUtilsSummary函数的逻辑长度错误
错误原因
你遇到的'length = 4' in coercion to 'logical(1)'错误,是因为调用EUtilsSummary时额外指定了type = "esearch"参数。该函数本身就是对NCBI E-utils中esearch接口的封装,不需要手动指定type参数——这个多余参数会导致内部逻辑判断生成长度为4的向量,而||运算符要求两边必须是长度为1的逻辑值,从而触发报错。
修正后的代码
移除type = "esearch"参数即可解决问题,修正后的代码如下:
library(RISmed) query <- "Runs of Homozygosity" ngs_search <- EUtilsSummary(query, db = "pubmed", mindate = 1999, maxdate = 2023, retmax = 30000)
额外注意事项
- 若后续仍有日期相关问题,可尝试将
mindate和maxdate改为字符型格式(如"1999/01/01"、"2023/12/31"),确保符合NCBI的日期规范。 - NCBI对E-utils的请求频率有限制,短时间内大量请求可能会被临时封禁IP,建议批量请求时添加适当延迟(如使用
Sys.sleep())。
内容的提问来源于stack exchange,提问作者Francisco
相关产品推荐
相关产品推荐

