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


R representation 構造類定義的表示形式或原型


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

說明

這些是要構造的舊實用函數,分別是設計用於表示插槽和超類的列表以及原型規範列表。 representation() 函數不再有用,因為現在建議使用參數 slotscontainssetClass

prototype() 函數仍可用於相應的參數,但相同參數的簡單列表也可以使用。

用法

representation(...)
prototype(...)

參數

...

對表示的調用采用單字符串參數。未命名參數是新定義的類擴展的類;命名參數命名新類中的顯式槽,並指定每個槽應具有哪個類。

在對 prototype 的調用中,如果提供了未命名的參數,它將無條件地構成原型對象的基礎。其餘參數對應於該對象的槽。提供多個未命名參數是一種錯誤。

細節

representation 函數對參數的有效性進行測試。每個都必須指定類的名稱。

調用 representation 時,指定的類不必存在,但如果存在,則該函數將檢查每個繼承類引入的任何重複槽名稱。

prototype 的參數通常被命名為槽的初始值,加上給出對象本身的可選第一個參數。如果定義有數據部分,則未命名參數通常很有用(請參見下麵的示例)。

representation 的值隻是經過有效性檢查後的參數列表。

prototype 的值是要用作原型的對象。槽位將與參數一致地設置,但構造不使用類定義來測試內容的有效性(這幾乎不能,因為通常提供原型對象來創建定義)。

例子

## representation for a new class with a directly define slot "smooth"
## which should be a "numeric" object, and extending class "track"
representation("track", smooth ="numeric")


###  >>> This *is* old syntax -- use 'contains=*, slots=*' instead <<<
###                ==========         ----------  ------   ======



setClass("Character",representation("character"))
setClass("TypedCharacter",representation("Character",type="character"),
          prototype(character(0),type="plain"))
ttt <- new("TypedCharacter", "foo", type = "character")


setClass("num1", representation(comment = "character"),
         contains = "numeric",
         prototype = prototype(pi, comment = "Start with pi"))



參考

Chambers, John M. (2008) Software for Data Analysis: Programming with R Springer. (For the R version.)

Chambers, John M. (1998) Programming with Data Springer (For the original S4 version.)

也可以看看

setClass

相關用法


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