В настоящее время я использую R-пакеты RISmed и bibliometrix для анализа данных публикации.
Вот мой код:
library(bibliometrix)
library(RISmed)
search_topic <- "(((Dental Health Services[MESH]) OR (Dentistry[MESH] OR Dentists[MESH)) AND Research[MESH]) AND Research[MESH] AND (Computers[MESH] OR Medical Informatics[MESH] OR Information Technology[MESH]) "
search_query <- EUtilsSummary(search_topic, retmax=200, mindate=2014, maxdate=2020)
summary(search_query)
D <- EUtilsGet(search_query)
M <- pubmed2df(D)
Все отлично работает, но когда я запускаю последнюю строку, я получаю сообщение об ошибке:
In readLines(the_url) :
cannot open URL 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?retmode=xml&dbfrom=pubmed&id=31173232&cmd=neighbor': HTTP status was '429 Unknown Error'
Это говорит в документация для функции EUtilsGet, которую пользователи могут публиковать не более 3 раз в секунду:
Чтобы не перегружать серверы E-Utility, NCBI рекомендует пользователям отправлять не более трех запросов URL в секунду. и ограничить большие рабочие места либо в выходные дни, либо с 9:00 вечера до 5:00 утра по восточному времени в будние дни. Несоблюдение этой политики может привести к блокировке доступа IP-адреса к NCBI.
После просмотра этой публикации также стало ясно, что я могу исправить решение путем перезапуска R и обновления пакета (оба из которых не имели никакого эффекта), или путем изменения кода для увеличения времени между запросами.
Как можно увеличить время между запросами, поскольку в данном случае это кажется мне единственным вариантом? Если есть какие-либо другие альтернативные решения, они также будут оценены.