2

私はこれらのベクトルを持っています:

>dput(SHLRK03)
c("CHSLSCR01", "SHLRK04", "SHLRK05", "WLLWCR01", "WLLWCR02", 
"WNBGORV01", "WNBGORV02", "WNBGORV03", "WNBGORV04", "WNBGORV05", 
"WNBGORV06")
> dput(SHLRK04)
 "SHLRK05"
> dput(WNBGORV01)
 c("WLLWCR02", "WNBGORV02", "WNBGORV03", "WNBGORV04", "WNBGORV05", 
 "WNBGORV06")

次の方法で接続の単一プロットを取得したいと思います。

  1. ベクトルの値を指すSHLRK03から。
  2. SHLRK03プロット内のSHLRK04からSHLRK04の値の値に向かって
  3. WNBGORV01からWNBGORV01の値に向かってSHLRk04を使用

そして、相互に関連しているいくつかの値があります。スタックオーバーフローとネットでそのような種類のプロットを検索しようとしましたが、例を見つけることができませんでした。

誰かがこれで私を助けてくれますか?お手数をおかけしますがよろしくお願いいたします。

4

1 に答える 1

7

これを行う1つの方法は、対応する隣接行列を作成することです。例えば、

vertices <- c("SHLRK03", unique(c(SHLRK03, SHLRK04, WNBGORV01)))
adj.mat <- matrix(0, nrow=length(vertices), ncol=length(vertices), 
                  dimnames=list(vertices, vertices))
adj.mat["SHLRK03", colnames(adj.mat) %in% SHLRK03] <- 1
adj.mat["SHLRK04", colnames(adj.mat) %in% SHLRK04] <- 1
adj.mat["WNBGORV01", colnames(adj.mat) %in% WNBGORV01] <- 1
library(igraph)
g <- graph.adjacency(adj.mat)
V(g)$label <- V(g)$name
plot(g)

オンラインドキュメントにあるグラフレイアウト、頂点ラベル付けなどのオプションがいくつかあります。上記のコードを使用したデフォルトのレンダリングは次のとおりです。

ここに画像の説明を入力してください

このようなベクトルがいくつかある場合は、小さなヘルパー関数を使用して隣接行列の入力を確実に自動化できます。

于 2012-07-09T07:50:40.800 に答える