在 R 中操作网络数据
我有一个数据框,详细说明了 N 个节点之间的边权重。 有处理此类数据的包吗?
例如,我想将以下信息绘制为网络:
p1 p2 counts
1 a b 100
2 a c 200
3 a d 100
4 b c 80
5 b d 90
6 b e 100
7 c d 100
8 c e 40
9 d e 60
I have a data frame detailing edge weights among N nodes. Is there a package for working with this sort of data?
For example, I would like to plot the following information as a network:
p1 p2 counts
1 a b 100
2 a c 200
3 a d 100
4 b c 80
5 b d 90
6 b e 100
7 c d 100
8 c e 40
9 d e 60
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
一种选择是 network 包,它是 statnet R 软件包系列,用于统计社交网络分析。 它以稀疏的方式处理网络数据,这对于较大的数据集很有用。
下面,我执行以下操作:
One option is the network package, part of the statnet family of R packages for statistical social network analysis. It handles network data in a sparse way, which is nice for larger data sets.
Below, I do the following:
以下是如何在 igraph 中绘制数据的网络图:
Here's how to make a network plot of the data in igraph:
我也一直在 igraph 工作。 创建图形的一种方法是将所有“从”“到”节点的列表写入文本文件,然后将其作为图形对象读回。 图对象可以经历许多图论过程,并且可以处理相当大的网络。
I've also been working in igraph. One way to create a graph is to write out a list of all "from" "to" nodes to a text file a read it back in as a graph object. The graph object can be subjected to many graph theoretic processes and can handle quite large networks.
根据我的经验,igraph 是我最喜欢的大型图论工作包。 它内存效率高,并且有一些非常好的算法。 igraph 使用内部类似边缘列表的数据结构。
对于更简单/更小的事情,我倾向于使用“sna”包(“社交网络分析”)。 它非常适合交互式工作和较小网络的绘图。 sna 更多地使用邻接矩阵数据结构。
In my experience, igraph is my favorite package for large, graph-theoretic work. It is memory efficient and has some very good algorithms. igraph uses an internal edgelist-like data structure.
For simpler/smaller things I tend to use the 'sna' package ("social network analysis"). It's great for interactive work and plotting of smaller networks. sna uses more of an adjacency-matrix data structure.