使用igraph,我从边缘列表中构建了一个网络,从中提取节点(顶点):
V(g)$name
[1] "Molecule" "CSS" "Scaffold" "Fragment" "CFramework" "RScaffold" "BTFramework" "Ph4G"
在一个单独的表中,我有一些频率
> nodes
N name
1 37021 CSS
2 2506 Scaffold
3 13809 Ph4G
4 846 CFramework
5 4835 RScaffold
6 23388 Fragment
7 1401 BTFramework
8 1857 Molecule
我想根据这些频率设置节点大小。match函数返回节点列表和频率表之间的对应关系,但不幸的是,输出中的顺序与节点列表中的顺序不同。
size = nodes[with(nodes, match(name, V(g)$name, nomatch = FALSE)), 1]
V(g)$size = (log(size)+1)
是否有一种方法来保持大小的顺序,因为它是在V(g)$name?
试试size <- nodes$N[match(V(g)$name, nodes$name)]