使用R

时间:2017-04-03 16:31:17

标签: r

我试图获得在过去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;

我不知道这意味着什么,以及如何处理这个错误。

2 个答案:

答案 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
}

但它只返回部分结果