エッジウェイト属性を含むいくつかの属性を持つグラフG =(V、E)があります。私は、重みがxよりも高い条件に基づいて部分グラフを作成しようとしています。エッジウェイトに基づくサブセットグラフ
g <- E(g)[weight > max(weight)*.10]
と標準的なRサブセットオプションを試しましたが、私は常にベクトルを取得します。 ここで間違っていることはわかりません。
エッジウェイト属性を含むいくつかの属性を持つグラフG =(V、E)があります。私は、重みがxよりも高い条件に基づいて部分グラフを作成しようとしています。エッジウェイトに基づくサブセットグラフ
g <- E(g)[weight > max(weight)*.10]
と標準的なRサブセットオプションを試しましたが、私は常にベクトルを取得します。 ここで間違っていることはわかりません。
たぶん、あなたはあなただけのサブセットエッジを使用してグラフgを交換しているためだろう。この
library(igraph)
set.seed(1)
m <- matrix(sample(c(.5, 2, 5), 100, replace=T, prob = c(.6,.3,.1)), nc=10, dimnames = rep(list(letters[1:10]), 2))
g <- graph_from_adjacency_matrix(m, weighted=T, diag=F, mode="undirected")
coords <- layout.auto(g)
par(mfrow = c(1,3))
plot(g, layout=coords, edge.width = E(g)$weight)
s1 <- subgraph.edges(g, E(g)[E(g)$weight>2], del=F)
plot(s1, layout=coords, edge.width = E(s1)$weight)
s2 <- delete_vertices(s1, degree(s1, mode = "in")==0)
plot(s2, layout=coords[V(g)$name%in%V(s2)$name,], edge.width = E(s2)$weight)
ような何かをしたいです。スレッショルドウェイト以下のエッジを削除する場合は、次のようにします。
g_sub <- delete.edges(g, E(g)[weight <= max(weight)*.10])
私はフローマトリックスを持っていませんが、あなたのコードは実際に私の質問に答えました。私はsubgraph.edges関数を使用していなかったし、definitivelyもdelete_verticesを持っていなかった。 ありがとうございます。 – FilipeTeixeira