当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R coerce-methods-graph 转换“图”<–>(稀疏)矩阵


R语言 coerce-methods-graph 位于 Matrix 包(package)。

说明

自 2005 年以来,包 Matrix 支持从包 graph 到类 graph 的强制转换。自 2013 年以来,此函数已通过函数 T2graphgraph2T 公开,与 as(from, "<Class>") 的方法不同,它们支持可选参数。

用法

graph2T(from, use.weights = )
T2graph(from, need.uniq = is_not_uniqT(from), edgemode = NULL)

参数

from

为了graph2T(), 一个R类的对象"graph";
为了T2graph(),一个稀疏矩阵继承自"TsparseMatrix".

use.weights

逻辑指示是否应使用权重,即,等效地结果将是数字,即类 dgTMatrix ;否则结果将为 ngTMatrixnsTMatrix ,如果图是无向的则为后者。默认情况下会查看图中是否有权重,如果与 1 不同,则使用权重。

need.uniq

逻辑指示from是否需要在内部“uniqified”;不要设置它,因此应该使用默认值,除非您知道自己在做什么!

edgemode

NULL"directed""undirected" 之一。默认 NULL 会查找矩阵是否对称,并在这种情况下假定 "undirected"

对于 graph2T() ,继承自 "TsparseMatrix" 的稀疏矩阵。

为了T2graph()一个R类的对象"graph".

例子

if(requireNamespace("graph")) {
  n4 <- LETTERS[1:4]; dns <- list(n4,n4)
  show(a1 <- sparseMatrix(i= c(1:4),   j=c(2:4,1),   x = 2,    dimnames=dns))
  show(g1 <- as(a1, "graph")) # directed
  unlist(graph::edgeWeights(g1)) # all '2'

  show(a2 <- sparseMatrix(i= c(1:4,4), j=c(2:4,1:2), x = TRUE, dimnames=dns))
  show(g2 <- as(a2, "graph")) # directed
  # now if you want it undirected:
  show(g3  <- T2graph(as(a2,"TsparseMatrix"), edgemode="undirected"))
  show(m3 <- as(g3,"Matrix"))
  show( graph2T(g3) ) # a "pattern Matrix" (nsTMatrix)

  a. <- sparseMatrix(i=4:1, j=1:4, dimnames=list(n4, n4), repr="T") # no 'x'
  show(a.) # "ngTMatrix"
  show(g. <- as(a., "graph"))

}

也可以看看

igraph ,它通过函数 graph_from_adjacency_matrixas_adjacency_matrix 提供与其类 igraph 之间的类似强制转换。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Conversions "graph" <–> (sparse) Matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。