r语言 - 匹配后如何维持秩序



使用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)]

最新更新