0
私は単純な解決策を見つけることができなかった単純な問題があります。私は10個のノードigraph:2つのノードの値の差を計算し、その結果を接続端に格納する方法
require(igraph)
g <- ba.game(10, directed = FALSE)
g[V(g), V(g)] <- TRUE
g <- simplify(g)
ノードの属性value
番号が含まれているだけでなく、欠損値を持つことができるの完全グラフを持っています。
set.seed(2)
df <- data.frame(id = 1:10,
value = sample(c(1:10, NA), 10, replace = T))
V(g)$value <- df$value
ここで、ノードの値の差を計算して、対応するエッジに格納します。グラフのエッジリストを作成します。
el <- as.data.frame(get.edgelist(g))
各ノードに対応する値を追加します。
el <- merge(el, df, by.x = 'V1', by.y = 'id')
el <- merge(el, df, by.x = 'V2', by.y = 'id')
と私は縁にedgelistから値を差し込む場合、私はタスク
E(g)$diff <- el$diff
完了しなければならないことを前提となる。この時点で
el$diff <- abs(el$value.x - el$value.y)
絶対差を計算しますとにかく実際にはエッジが注文されていないようですが、実際にはそうしています
plot(g, vertex.label = V(g)$value, edge.label = E(g)$diff)
すぐに何かがうまくいかず、エッジ値がランダムに分散していることがわかります。