跳转到内容

R 编程/网络分析

来自维基教科书,开放的书籍,为开放的世界

R 编程/分析

我们主要使用以下软件包来演示 R 中的网络分析:statnetsnaigraph。但它们并非完整列表。有关完整列表,请参见 gR 任务视图,R 中的图形模型

使用 igraph 创建简单图形

[编辑 | 编辑源代码]
 
> # load the appropriate library
> library(igraph)
> # now create a few simple graphs
> # an undirected graph with 10 nodes and without any edge
> g1 <- graph.empty(10,directed=FALSE)
> # a directed graph with 10 nodes
> g2 <- graph.ring(10,directed=TRUE)
> # a complete undirected graph with 10 nodes
> g3 <- graph.full(10,directed=FALSE)
> # now get information about these graphs
> summary(g1)
> # g1 is an igraph object, U = Undirected, with 10 nodes and 0 edge
> IGRAPH U--- 10 0 -- 
> summary(g2)
> # g1 is an igraph object,  D = Directed
> IGRAPH D--- 10 10 -- Ring graph

从数据创建图形

[编辑 | 编辑源代码]

首先加载 igraph 包

library(igraph)

然后您可以选择您喜欢的格式。以下是作为边列表和邻接矩阵提供的数据示例。

从边列表创建图形

[编辑 | 编辑源代码]

边列表由一个两列矩阵形成,每行定义一条边。从第一列中的每个元素到第二列中的对应元素绘制一条边。使用 graph.edgelist() 函数导入您的数据。

 
# producing some random data in edge list form
el <- cbind(sample(1:10, 10), sample(1:10, 10))

# creating and plotting the graph from the edge list
gr <- graph.edgelist(el)
plot(gr)

从邻接矩阵创建图形

[编辑 | 编辑源代码]

邻接矩阵是一个 n × n 矩阵,包含 n 个顶点,其中每个条目 aij 表示从顶点 i 到顶点 j 的边数。要导入您的邻接矩阵,请使用 graph.adjacency() 函数。

 
# producing a random adjacency matrix
adj <- matrix(sample(0:1, 100, replace=T), 10, 10)

# creating and plottig the graph from the adjacency matrix
gr <- graph.adjacency(adj)
plot(gr)

参考文献

[编辑 | 编辑源代码]
上一页:因子分析 索引
华夏公益教科书