當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。