0

私は R を使用して Twitter データに取り組んでいます。私が持っているのは、365 人のユーザーのフォロワー ID を含む .csv ファイルです。このデータをエッジ リストに変換し、最終的に igraph パ​​ッケージを使用してネットワーク分析用に .graphml または Pajek ファイルをエクスポートしようとしています。

.csv ファイルには 365 行が含まれています。検索したユーザーごとに 1 行。各行の最初の列にはユーザー ID が含まれ、次の列にはユーザーの友人 (フォローしているユーザー) の ID が含まれます。この 365 ユーザー間のネットワークに興味があります。これを取得するには、他のすべてのユーザーを除外する必要があります。

問題は、R が 714 列を超えるすべての行を (エラー メッセージなしで) 分割しているように見えることです。csv ファイル (read.csv) を読み込むと、データ フレームには 456 行 (365 を含む必要があります) と 714 列 (1 人のユーザーには非常に多くの友人がいるため、12500 以上を含む必要があります) が含まれます。

R の列制限に関する情報は見つかりませんでした。見つかったのはメモリ制限に関するものだけでした。だからここに私の質問があります

列を分割しないように、または非常に多くの列を許可するように R に指示する方法はありますか?

このデータをフォーマットする最良の方法はどれですか? 非常に多くの列が最良のアイデアではなかったと思いますか?

これが私のコードです。それは機能していますが、本来あるべきよりも多くの行があるため、あるべきよりも多くのノードもあります

friends=read.csv("friends.csv",header=FALSE,check.names=FALSE,sep=";")


dim(friends)


#node list
i <- 1#zähler für zeilen
from <- NULL #
to <- NULL
while(i<=nrow(friends)){#startet bei der ersten Zeile in friends datei
   a <- as.array(intersect(friends[i,2:ncol(friends)], friends[,1]))
   for(l in a){
   from <- c(from,friends[i,1])
   to <- c(to,l)    
   }
    i=i+1
}
raWnet=data.frame(from,to)


#PRODUCE GRAPH
library(igraph)
el=as.matrix(raWnet) # coerces the data into a two-column matrix format that igraph likes
el[,1]=as.character(el[,1])
el[,2]=as.character(el[,2])
net=graph.edgelist(el,directed=TRUE)


write.graph(net, file="atpoltwit.graphml", format="graphml")
write.graph(net, file="atpoltwit.NET", format="pajek")
4

0 に答える 0