私は 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")