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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。