use*_*675 10 r list matrix social-networking edge-list
这种关系表示为这样的矩阵x
:
A B C D
A 0 2 1 1
B 2 0 1 0
C 1 1 0 1
D 1 0 1 0
Run Code Online (Sandbox Code Playgroud)
条目指的是它们具有的连接数.谁能告诉我如何将其作为边缘列表?谢谢!我正在考虑将其写为边缘列表,如:
A B
A B
A C
A D
B C
Run Code Online (Sandbox Code Playgroud)
但是,如果我想创建网络图,这个边缘列表是否正确?谢谢!
flo*_*del 29
使用igraph
包:
x <- matrix(c(0,2,1,1,2,0,1,0,1,1,0,1,1,0,1,0), 4, 4)
rownames(x) <- colnames(x) <- LETTERS[1:4]
library(igraph)
g <- graph.adjacency(x)
get.edgelist(g)
# [,1] [,2]
# [1,] "A" "B"
# [2,] "A" "B"
# [3,] "A" "C"
# [4,] "A" "D"
# [5,] "B" "A"
# [6,] "B" "A"
# [7,] "B" "C"
# [8,] "C" "A"
# [9,] "C" "B"
# [10,] "C" "D"
# [11,] "D" "A"
# [12,] "D" "C"
Run Code Online (Sandbox Code Playgroud)
我还建议您花点时间阅读http://igraph.sourceforge.net/index.html上的igraph
文档,因为您最近的许多问题都是简单的案例用法.
(作为奖励,plot(g)
将回答你的另一个问题如何在R中绘制关系?)
Zhi*_*Jia 14
使用melt
in reshape2
,然后删除权重== 0.如果不需要打印重量.只是删除它.
x
sample1 sample2 sample3 sample4
feature1 0 2 1 1
feature2 2 0 1 0
feature3 1 1 0 1
feature4 1 0 1 0
melt(x)
Var1 Var2 value
1 feature1 sample1 0
2 feature2 sample1 2
3 feature3 sample1 1
4 feature4 sample1 1
5 feature1 sample2 2
Run Code Online (Sandbox Code Playgroud)