【发布时间】:2016-10-09 00:45:21
【问题描述】:
我有一个 igraph,我想在其中提取每个节点的所有 1 度连接以及 2 度连接。不过,这些表需要分开。
带有图形图片的完整可重现代码如下:
library(igraph)
library(visNetwork)
B = matrix(
c(1, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 1, 1, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
0, 0, 0, 0, 0, 1, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
nrow=10,
ncol=10)
colnames(B) <- c("Alpha", "Bravo", "Colonel", "Demo", "Egg", "Felix", "Gasoline", "Hurricane", "Indigo", "Jab")
rownames(B) <- c("Alpha", "Bravo", "Colonel", "Demo", "Egg", "Felix", "Gasoline", "Hurricane", "Indigo", "Jab")
g96e = t(B) %*% B
i96e = graph.adjacency(g96e, mode = "undirected", weighted = TRUE, diag=FALSE)
visIgraph(i96e)
我希望我的最终结果是一个如下所示的数据框:
Node ID 1st Degree Connections
Alpha Gasoline
Bravo Egg
Bravo Hurricane
Colonel Felix
Colonel Indigo
Demo Felix
Demo Gasoline
Demo Jab
Egg Bravo
Felix Colonel
Felix Demo
Felix Hurricane
Felix Indigo
Gasoline Alpha
Gasoline Demo
Gasoline Jab
Hurricane Bravo
Hurricane Felix
Indigo Colonel
Indigo Felix
Jab Demo
Jab Gasoline
然后是另一个只有 2 度连接的数据框,理想情况下显示 2 度连接的来源,但如果这不可能,那么只需 2 度连接即可。
Node ID 2nd Degree Connections From 1st Degree Connection
Alpha Demo Gasoline
Alpha Jab Gasoline
Bravo Felix Hurricane
Colonel Demo Felix
Colonel Hurricane Felix
Colonel Indigo Felix
Colonel Felix Indigo
Demo Colonel Felix
Demo Hurricane Felix
Demo Indigo Felix
Demo Alpha Gasoline
Demo Jab Gasoline
Demo Gasoline Jab
Egg Hurricane Bravo
Felix Indigo Colonel
Felix Gasoline Demo
Felix Jab Demo
Felix Bravo Hurricane
Felix Colonel Indigo
Gasoline Felix Demo
Gasoline Jab Demo
Gasoline Demo Jab
Hurricane Egg Bravo
Hurricane Colonel Felix
Hurricane Demo Felix
Hurricane Indigo Felix
Indigo Felix Colonel
Indigo Colonel Felix
Indigo Demo Felix
Indigo Hurricane Felix
Jab Felix Demo
Jab Gasoline Demo
Jab Alpha Gasoline
Jab Demo Gasoline
任何帮助都会很棒,谢谢!
【问题讨论】:
标签: r social-networking igraph sna