处理R

时间:2015-10-20 16:48:51

标签: r rest graph dataframe mediawiki-api

我正在构建一个R包来与RESTful MediaWiki API进行交互。在编写函数以提取一篇文章的所有链接的图形时,我必须操纵一个非常大的(500行和500列)数据帧。这样做,R很慢,对于一篇文章(例如“民族主义”文章),所有过程需要20个小时。

你能推荐一些东西来加快速度吗? 为了更准确地解释一下,我给你了我的包的“createGraph”函数的代码:

#' Make the graph of the links of one page
#' 
#' @param title the title of a page
#' @param domain the wiki of a page
#' @return A graph object
#' @import igraph
#' @export
#' 

createGraph <- function(titre,domaine,namespace,contributors=F) {      
print(paste("Téléchargement des liens de l'article",titre,sep=" "))
  listLinks<-links(titre,domaine,namespace)

  print("Construction de la matrice d'adjacence du graphe")
  data<-data.frame(matrix("0",ncol = nrow(listLinks),nrow = nrow(listLinks)),row.names=listLinks$titre,stringsAsFactors=FALSE)
  for(i in 1:nrow(data)) {
    for(j in 1:ncol(data)) {
      data[i,j]<-isLink(listLinks$titre[i],listLinks$titre[j],domaine)
    }
   print(paste(i/nrow(data)-1,"%",sep=" "))
  }
  newRow<-rep(1,ncol(data))
  data<-rbind(data,newRow)
  rownames(data)[nrow(data)]<-titre
  data[,ncol(data)+1]<-1
  data[nrow(data),ncol(data)]<-isLink(titre,titre,domaine)
  names(data)<-c(listLinks$titre,titre)

  graph_from_adjacency_matrix(data)
  graph<-graph_from_adjacency_matrix(as.matrix(data),c("directed"))
  print("100 %")
}

0 个答案:

没有答案