#r #pubmed
#r #pubmed
Вопрос:
Я написал код R для извлечения идентификаторов и заголовка Pubmed, используя название журнала, дату, объем, выпуск и номер страницы.
Файл содержит строки, подобные
AAPS PharmSci 2000 2 1 E2
AAPS PharmSci 2004 6 1 1-9
И результат, который я хочу, выглядит так:
AAPS PharmSci 2000 2 1 E2, 11741218 , Molecular modeling of G-protein coupled receptor kinase 2: docking and biochemical evaluation of inhibitors.
аналогично для всех строк в файле
Код, который я написал на R для этого
search_topic <- "search term"
search_query <- EUtilsSummary(search_topic)
#summary(search_query)
# see the ids of our returned query
ID <- QueryId(search_query)
# get actual data from PubMed
records<- EUtilsGet(search_query)
# store it
pubmed_data <- data.frame(ID,'Title'=ArticleTitle(records))
write.csv(pubmed_data, file = paste("./",search_topic,".csv",sep=""))
Что выдает ошибку типа:
In addition: Warning message:
In file(con, "r") : cannot open: HTTP status was '502 Server Hangup'
Пожалуйста, дайте мне знать, где я ошибаюсь?
Комментарии:
1. работает для меня (по крайней мере, не выдает никаких предупреждений или ошибок, хотя не все запросы имеют попадания). Вы читали «Примечание об использовании»
?EUtilsGet
, т. Е. Были ли вы осторожны, чтобы не отправлять слишком много запросов слишком быстро? Возможно, ваш IP-адрес заблокирован…2. Но тогда как мне записать «pubmed_data» в один файл вместо записи его в несколько файлов? И как мне позаботиться о «слишком большом количестве запросов слишком быстро»?
3. (1) мне трудно точно знать, что происходит с вашей стороны ( возможно , вы были заблокированы, не знаете, как долго это длится, или у вас может быть какой-то другой [надеюсь, временный?] сетевая ошибка). (2) запись в один файл — это действительно другой вопрос, но вы можете использовать
write.table(...,sep=",",append=TRUE)
(write.csv
игнорируетappend
аргумент!); (3)?Sys.sleep
…4. Возможно, связано: ncbi.nlm.nih.gov/home/bulletins/https-tests.shtml