注 1: R パッケージの "network" と "sna" を使用しています。
注 2: 元のデータは .csv ファイルのエッジリスト形式です。
エッジリスト データを R に読み込む最良の方法を探していました。一見すると、これは簡単です。
data <- read.csv("file.CSV", header=F)
network <- network(data, matrix.type="edgelist", directed=F) #convert data to network object
val<-data[,3] #here are the values for my edges
set.edge.value(network, "val", val, e=1:length(network$mel))
ネットワークにエッジ値を返すように要求すると (get.edge.values)、正しい値が返されます。
ただし、私が尋ねるsummary(network)
と、すべての値が 1 に設定されている隣接行列が返されるだけです (対角線を除く)。値がゼロだったとしても、値は 1 になります。
さらに、 degree(network) のようなものを取得しようとすると、間違った結果が返されます。
私はこれについて何日も探してきました。考えられる解決策は、 を使用することでしたnetwork2<-as.matrix.network(netwerk1, matrix.type="adjacency", attrname="val")
。これは機能します。ただし、問題は、これがネットワーク オブジェクトではなくなり、マトリックス クラスになることです。その結果、頂点属性をネットワークに追加できません。network2 を再度ネットワーク オブジェクトに変換すると、ネットワーク内のエッジ値が失われます。
いくつかの助けをいただければ幸いです。
ベスト、フレデリク