|
. H6 _' h/ ~4 h) ?<p>如何将存储在磁盘上的邻接矩阵输入到 R 程序中,是进行社交网络分析的起点。在前面的章节中已经介绍了基本的数据结构以及代码结构,本章将会面对一个实质性问题,学习如何导入一个图以及计算图的一些属性。</p>4 c2 a" c* k2 E) A0 [; z: ?+ Z: P6 }
<ul>
/ X5 o1 w. U# F4 Q: v0 w `, c& x<li><a href="https://www.cnblogs.com/zhanggaoxing/p/15870841.html">图的文件表示</a></li>* g6 `6 b* T! ~2 u. x( @6 u" U
<li><a href="https://www.cnblogs.com/zhanggaoxing/p/15870841.html">导入一个图</a></li>& y- o# r( f/ W
<li><a href="https://www.cnblogs.com/zhanggaoxing/p/15870841.html">生成人工网络</a></li>
( W0 h. ^" u/ t3 G. a2 }( ?<li><a href="https://www.cnblogs.com/zhanggaoxing/p/15870841.html">图的基本分析</a></li>
, S5 m% M' K- E2 P' U7 s' v</ul>; m7 L0 c7 ^( O/ j
<h2 id="图的文件表示">图的文件表示</h2>
7 r8 B5 Q1 [3 u6 B7 @. G {0 _( @1 e<p>在计算机中,最常见的两种表示图的基本结构是<strong>邻接矩阵</strong>和<strong>邻接表</strong>。以最简单的无权无向图为例,邻接矩阵中第 <span class="math inline">\(i\)</span> 行第 <span class="math inline">\(j\)</span> 列的元素 <span class="math inline">\(a_{ij}\)</span> 如果等于 1,则表示顶点 <span class="math inline">\(i\)</span> 和顶点 <span class="math inline">\(j\)</span> 之间有边,即邻接矩阵将所有节点之间的关系都表示出来。邻接表则是对顶点 <span class="math inline">\(i\)</span> 建立一个单链表,这个单链表由顶点 <span class="math inline">\(i\)</span> 的所有邻居节点构成,即邻接表只是把存在关系的节点表示出来。</p>4 {8 Z7 R. z- k' d: q; O
<p>网络上许多公开的数据集更常使用<strong>三元组</strong>去表示一个图。下面是一个三元组的示例,以第一行的三元组 (1, 2, 1) 为例,它表示有一条从顶点 1 指向顶点 2 的边,并且该边的权重为 1。对于无权图而言,通常会省略三元组中的第三个元素。</p># l, s$ s6 ?' T$ o5 |( ]8 N3 H& j
<pre><code class="language-text">1 2 1- M2 n9 _+ q- z+ x$ N% o2 Q. Q
1 3 -1
& j9 k* G; K% o5 b9 v$ L2 3 -1
/ e. {* @6 e9 f t1 c% r( y- D1 4 -15 u% t, K1 Z9 P
3 4 1
+ L5 Q- j- ^: J9 q! a' V</code></pre>
/ ]% u% r. k% D m+ u<div style="display: block; position: relative; border-radius: 8px; padding: 1rem; background-color: rgba(210, 249, 210, 1); color: rgba(9, 68, 9, 1); margin: 10px">/ n2 Y2 F2 P2 o! [& M1 Y
<p style="margin-top: 0; font-weight: bold"> |
|