给定两个相同大小的向量,如何在 R 中创建图形

How to create a graph in R given two vectors of the same size

假设我在 R 中有两个长度相同的向量(比如 x 和 y),我想创建一个图(就像在图论中那样)。对于小于或等于两个向量长度的所有 n,在 y 中的第 n 个项目和 x 中的第 n 个项目之间创建边时,我该怎么做?我专门尝试使用 igraph 包来做到这一点。

首先让我们为 xy

生成一些示例数据
set.seed(2018)
x <- sample(1:5, 10, replace = T)
y <- sample(1:5, 10, replace = T)

让我们检查一下数据

data.frame(x, y)
#   x y
#1  3 3
#2  4 3
#3  5 1
#4  2 1
#5  5 5
#6  1 3
#7  3 1
#8  4 3
#9  2 3
#10 4 5

我们现在可以使用 igraph::graph_from_data_frame 创建一个 igraph 对象,其中 data.frame(x, y) 中的每一行对应于 xy 之间的一条边节点。

library(igraph)
ig <- graph_from_data_frame(data.frame(x, y))
plot(ig)