我试图获得在过去5年中在PLOS Medicine期刊上发表的8000位作者的名字。我只有他们的姓氏和首字母。我也需要每个作者的名字!我试图用" rplos"包。但是,每当我尝试匹配用户时,我都会收到错误。我是R的新手,我可能做错了。
这是我的代码:
library('rplos')
#This is the procedure for a single author's last name
t <- plosauthor(q='Wood', fl=c('id','author'), limit=2)
t <- data.frame(t)
#I wanna match 8.000 author's last names and tried this:
a <-read.csv("PLOSAuthors_List.csv", header= TRUE)
all_authors <- a$Last_Name
all_authors <- data.frame(all_authors)
#Then I try to iterate over all authors
for (i in all_authors) {
b <- plosauthor(q=all_authors, fl=c('id', 'author'), limit=2)
}
但是,不幸的是,我收到以下错误:
&#34; curl :: curl_fetch_memory(url,handle = handle)出错: 从对等方接收数据失败&#34;
我不知道这意味着什么,以及如何处理这个错误。
答案 0 :(得分:0)
尝试像这样修改它:
b <- matrix(data=NA,nrow=nrow(all_authors),ncol=1)
for (i in 1:nrow(all_authors)) {
b[i,x] <- plosauthor(q=all_authors[i,1], fl=c('id', 'author'), limit=2)
#x is the size of the output (i.e. ncol) of the function.
}
答案 1 :(得分:0)
我也尝试了以下内容:
all_authors <- as.vector(a$Last_Name)
list_results <- NULL
for (i in all_authors) {
b <- plosauthor(q=i, fl=c('id, author'), limit=2)
b <- as.data.frame(b)
list_results <- rbind(list_results, b)
b <- NULL
list_results
}
但它只返回部分结果