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. 从带有 SHLRk04 的 WNBGORV01 到 WNBGORV01 中的值

我还有几个相互关联的价值观。我试图在堆栈溢出和网络上搜索此类图,但找不到任何示例。

有人可以帮我解决这个问题吗?我感谢您的时间和精力。

4

1 回答 1

7

一种方法是建立相应的邻接矩阵。例如,

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 回答