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


R classesToAM 計算類定義的超類的鄰接矩陣

R語言 classesToAM 位於 methods 包(package)。

說明

給定類名向量或類定義列表,該函數返回這些類的超類的鄰接矩陣;也就是說,一個以類名作為行名和列名的矩陣,如果第 j 列中的類是第 i 行中類的直接超類,則元素 [i, j] 為 1,否則為 0。

該矩陣具有類定義的 contains 槽隱含的信息,但其形式通常更便於進一步分析;例如,在軟件包和其他軟件中使用鄰接矩陣來構建關係的圖形表示。

用法

classesToAM(classes, includeSubclasses = FALSE,
       abbreviate = 2)

參數

classes

類名稱的字符向量或列表,其元素可以是類名稱或類定義。該列表很方便,例如包含類名的包槽。請參閱示例。

includeSubclasses

邏輯標誌;如果 TRUE ,則矩陣將包括指定類的所有已知子類以及超類。該參數也可以是與 classes 長度相同的邏輯向量,以包含某些但不是所有類的子類。

abbreviate

控製返回矩陣的行和/或列標簽的縮寫:值 0、1、2 或 3 都不縮寫、行、列或兩者都縮寫。默認值 2 對於打印矩陣很有用,因為類名往往超過一個字符長,適合 spread-out 打印。值 0 或 3 適合製作圖表(3 避免了某些圖表繪製軟件生成小字體標簽的傾向)。

細節

對於每個類,計算從類定義中獲取所有超類名稱,並找到這些類定義中的邊;即距離為1的所有超類。鄰接矩陣的相應元素設置為1。

各個類定義的鄰接矩陣被合並。請注意兩種可能的不一致,這兩種不一致都不會導致問題,除非可能來自不同包的同名類。邊是根據每個超類定義計算的,因此信息會覆蓋距離 > 1 的擴展元素的可能推斷(而且應該如此)。當參數中連續類的矩陣被合並時,計算當前不會檢查不一致之處 - 這是多個具有相同名稱的類可能會導致混亂的區域。稍後的修訂可能包括一致性檢查。

如所說明的,具有條目0或1的矩陣,非零值指示對應於列的類是對應於行的類的直接超類。行和列名稱是類名稱(不包含包槽)。

例子


## the super- and subclasses of "standardGeneric"
## and "derivedDefaultMethod"
am <- classesToAM(list(class(show), class(getMethod(show))), TRUE)
am

## Not run: 
## the following function depends on the Bioconductor package Rgraphviz
plotInheritance <- function(classes, subclasses = FALSE, ...) {
    if(!require("Rgraphviz", quietly=TRUE))
      stop("Only implemented if Rgraphviz is available")
    mm <- classesToAM(classes, subclasses)
    classes <- rownames(mm); rownames(mm) <- colnames(mm)
    graph <-  new("graphAM", mm, "directed", ...)
    plot(graph)
    cat("Key:\n", paste(abbreviate(classes), " = ", classes, ", ",
        sep = ""),  sep = "", fill = TRUE)
    invisible(graph)
}

## The plot of the class inheritance of the package "graph"
require(graph)
plotInheritance(getClasses("package:graph"))


## End(Not run)

也可以看看

extendsclassRepresentation 用於獲取類定義的基礎信息。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Compute an Adjacency Matrix for Superclasses of Class Definitions。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。