广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >R语言中igraph包的用法(邻接矩阵)
  • 551
分享到

R语言中igraph包的用法(邻接矩阵)

2024-04-02 19:04:59 551人浏览 泡泡鱼
摘要

先导入igraph包: library(igraph) graph包最简单的用法就是graph方法,两句代码就完成绘制如下所示,1的loop表示为(1,1),1和2之间有3条e

先导入igraph包:


library(igraph)

graph包最简单的用法就是graph方法,两句代码就完成绘制如下所示,1的loop表示为(1,1),1和2之间有3条edge,表示为(1,2,1,2,1,2)


g <- graph(c(1,1,1,2,1,2,1,2,1,5,2,3,2,4,2,5,3,3,3,4,3,4,3,4,4,5),directed = FALSE)
plot(g)

如果用顶点的邻接矩阵表示,仍以上图为例:

则对1,1有loop,与2有条edge,与5有一条edge,所以邻接矩阵的第一行为(1,3,0,0,1);

类似地,可以得出邻接矩阵的第2、3、4、5行;按列输入上述矩阵:


cell <- c(1,3,0,0,1,3,0,1,1,1,0,1,1,3,0,0,1,3,0,1,1,1,0,1,0)                                     
cell <- matrix(cell,5,5,byrow=T) 

使用graph.adjacency方法:


cnames <- c('a','b','c','d','e')                                         
g <- graph.adjacency(cell,mode="undirected")plot(g,vertex.label=cnames)#绘出图像

补充:R语言学习-提取igraph的节点和边

网络分析的时候,可能需要提取出网络中的节点或者边,igraph包中其实提供了很多可用的函数。


#创建网络方法之一:data.frame
data<-data.frame(id1=c(1,1,2,3,4,4,5,5,6,6,7,8,8,9,10,5,15,6,7,16),id2=c(2,11,11,12,13,14,15,16,7,15,16,17,18,18,9,19,19,19,19,19))
g <- graph_from_data_frame(data, directed=FALSE)    #directed 参数控制graph 有无方向
g
IGRAPH UN-- 16 17 -- 
+ attr: name (v/c)
+ edges (vertex names):
 [1] 1 --2  2 --3  3 --4  1 --4  5 --7  5 --6  5 --8  7 --6  7 --8  6 --8  9 --10 9 --13 11--10 11--12 12--13 14--15 1 --16
#图形显示
plot(g)


#V(g)和E(g)可以用来查看网络g的节点和边
 V(g)
+ 16/16 vertices, named:
 [1] 1  2  3  5  7  6  9  11 12 14 16 4  8  10 13 15
E(g)
+ 17/17 edges (vertex names):
 [1] 1 --2  2 --3  3 --4  1 --4  5 --7  5 --6  5 --8  7 --6  7 --8  6 --8  9 --10 9 --13 11--10 11--12 12--13 14--15 1 --16
#但问题是怎么将里面的数据提取出来放到变量里面呢?
#节点提取有个函数get.vertex.attribute(g)
get.vertex.attribute(g)
$name
 [1] "1"  "2"  "3"  "5"  "7"  "6"  "9"  "11" "12" "14" "16" "4"  "8"  "10" "13" "15"
#查看类型可知是list
class(get.vertex.attribute(g))
[1] "list"
#剩下的就简单了
node<-get.vertex.attribute(g)[[1]]
node
 [1] "1"  "2"  "3"  "5"  "7"  "6"  "9"  "11" "12" "14" "16" "4"  "8"  "10" "13" "15"
#至于边呢?可以使用get.edgelist()
get.edgelist(g)
      [,1] [,2]
 [1,] "1"  "2" 
 [2,] "2"  "3" 
 [3,] "3"  "4" 
 [4,] "1"  "4" 
 [5,] "5"  "7" 
 [6,] "5"  "6" 
 [7,] "5"  "8" 
 [8,] "7"  "6" 
 [9,] "7"  "8" 
[10,] "6"  "8" 
[11,] "9"  "10"
[12,] "9"  "13"
[13,] "11" "10"
[14,] "11" "12"
[15,] "12" "13"
[16,] "14" "15"
[17,] "1"  "16"
#类型是matrix矩阵可以直接使用
class(get.edgelist(g))
[1] "matrix"

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

--结束END--

本文标题: R语言中igraph包的用法(邻接矩阵)

本文链接: https://www.lsjlt.com/news/123909.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • R语言中igraph包的用法(邻接矩阵)
    先导入igraph包: library(igraph) graph包最简单的用法就是graph方法,两句代码就完成绘制如下所示,1的loop表示为(1,1),1和2之间有3条e...
    99+
    2022-11-12
  • R语言matrix生成矩阵的方法
    主要介绍一下利用matrix函数和rep生成矩阵 在R语言中可以使用matrix()函数来创建矩阵,其语法格式如下: matrix(data=NA, nrow = 1, nco...
    99+
    2022-11-11
  • R语言创建矩阵的实现方法
    矩阵 向量vector用于描述一维数据,是R语言中最基础的数据结构形式 矩阵matrix可以描述二维数据,和向量相似,其内部元素可以是实数、复数、字符、逻辑型数据 矩阵...
    99+
    2022-11-11
  • R语言矩阵的创建方法是什么
    这篇文章主要讲解了“R语言矩阵的创建方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“R语言矩阵的创建方法是什么”吧!矩阵的创建产生矩阵的函数dim(),matrix()R软件的实现:...
    99+
    2023-06-03
  • R语言中矩阵matrix和数据框data.frame的使用详解
    本文主要介绍了R语言中矩阵matrix和数据框data.frame的一些使用,分享给大家,具体如下: "一,矩阵matrix" "创建向量" x_1=c(1,2,3) x_1=...
    99+
    2022-11-11
  • 如何在R语言中使用matrix函数生成矩阵
    今天就跟大家聊聊有关如何在R语言中使用matrix函数生成矩阵,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在R语言中可以使用matrix()函数来创建矩阵,其语法格式如下:matr...
    99+
    2023-06-08
  • R语言中向量和矩阵简单运算的实现
    一、向量运算 向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量。   1.R语言向量的产生方法 &...
    99+
    2022-11-11
  • R语言中常见的几种创建矩阵形式总结
    矩阵概述 R语言的实质实质上是与matlab差不多的,都是以矩阵为基础的 在R语言中,矩阵(matrix)是将数据按行和列组织数据的一种数据对象,相当于二维数组,可以用于描述二维的数...
    99+
    2022-11-11
  • C语言中杨氏矩阵与杨辉三角的实现方法
    一、杨氏矩阵 杨氏矩阵 1.杨氏矩阵的概念 在数学中,杨表(英语:Young tableau),又称杨氏矩阵。是对组合表示理论和舒伯特演算很有用的工具。它提供了一种方便的方式来描述...
    99+
    2022-11-12
  • R语言中na.fail和na.omit的用法
    实际工作中,数据集很少是完整的,许多情况下样本中都会包括若干缺失值NA,这在进行数据分析和挖掘时比较麻烦。 R语言通过na.fail和na.omit可以很好地处理样本中的缺失值 1、...
    99+
    2022-11-12
  • R语言中xtabs函数的用法
    这篇文章将为大家详细讲解有关R语言中xtabs函数的用法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。今天在做一个列联表独立性检验的时候,总是无法处理好要求的数据类型,偶然的机会,看到了xtabs()函数...
    99+
    2023-06-14
  • R语言拼接字符串_paste的用法说明
    R中自带的字符串连接的函数是paste。 先来看一下官方文档里对paste用法的解释: 基本格式: paste (…, sep = " ", collapse = NULL) ...
    99+
    2022-11-12
  • R语言中qplot()函数的用法说明
    ggplot2()函数 ggplot2是一个强大的作图工具,它可以让你不受现有图形类型的限制,创造出任何有助于解决你所遇到问题的图形。 qplot() qplot()属于ggplot...
    99+
    2022-11-12
  • R语言中ifelse、which、%in%的用法详解
    ifelse、which、%in%是R语言里极其重要的函数,以后会经常在别的程序中看到。 ifelse ifelse是if条件判断语句的简写,它的用法如下: ifelse(tes...
    99+
    2022-11-12
  • R语言中cut()函数的用法说明
    R语言cut()函数使用 cut()切割将x的范围划分为时间间隔,并根据其所处的时间间隔对x中的值进行编码。 参数:breaks:两个或更多个唯一切割点或单个数字(大于或等于2)的数...
    99+
    2022-11-12
  • R语言中Fisher判别的使用方法
    最近编写了Fisher判别的相关代码时,需要与已有软件比照结果以确定自己代码的正确性,于是找到了安装方便且免费的R。这里把R中进行Fisher判别的方法记录下来。 1. 判别分析与F...
    99+
    2022-11-11
  • R语言中quantile()函数的用法说明
    在R语言中取百分位比用quantile()函数,下面举几个简单的示例: 1、求某个百分位比 > data <- c(1,2,3,4,5,6,7,8,9,10) >...
    99+
    2022-11-12
  • 在R语言中实现左连接的方法有哪些
    这篇文章将为大家详细讲解有关在R语言中实现左连接的方法有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。法一:> data0 <- merge(a...
    99+
    2023-06-14
  • R语言中数据表匹配和拼接merge函数的使用方法
    小编给大家分享一下R语言中数据表匹配和拼接merge函数的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!R中的merge函数类似于Excel中的Vlook...
    99+
    2023-06-14
  • R语言中assign函数和get函数的用法
    assign函数在循环时候,给变量赋值,算是比较方便 1、给变量赋值 for (i in 1:(length(rowSeq)-1)){ assign(paste("nginx...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作