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


R as 强制对象属于某个类


R语言 as 位于 methods 包(package)。

说明

将对象强制到给定的类。

用法

as(object, Class, strict=TRUE, ext)

as(object, Class) <- value

参数

object

任何R对象。

Class

object 应该被强制转换为的类的名称。

strict

逻辑标志。如果 TRUE ,返回的对象必须严格来自目标类(除非该类是虚拟类,在这种情况下,该对象将来自最接近的实际类,特别是原始对象,如果该类扩展了虚拟类直接地)。

如果是 strict = FALSE ,则将返回目标类的任何简单扩展,无需进一步更改。粗略地说,一个简单的扩展只是向现有类添加插槽。

value

用于修改 object 的值(请参阅下面的讨论)。您应该提供一个具有类 Class 的对象;有些强制已经完成,但你依赖它是不明智的。

ext

一个可选对象,定义如何通过对象的类扩展 Class (由 possibleExtends 返回)。该参数在内部使用;不要直接使用它。

说明

as(object) 返回强制为给定 Class 的该对象的版本。当在赋值左侧的替换形式中使用时,与 Class 对应的对象部分将被 value 替换。

任一形式的as() 的操作取决于强制方法的定义。当两个类通过继承相关时,会自动定义方法;也就是说,当其中一个类是另一个类的子类时。

强制方法也是为基本类(包括所有类型的向量、函数和其他一些类型)预定义的。

除了这两个方法源之外,更多方法是通过调用 setAs 函数来定义的。另请参阅该文档以了解强制方法如何工作的详细信息。使用 showMethods(coerce) 获取当前定义的所有方法的列表,如下例所示。

基本强制方法

预定义方法用于将任何对象强制为一种基本数据类型。例如,as(x, "numeric") 使用现有的as.numeric 函数。这些以及所有其他现有方法可以如示例中所示列出。

例子


## Show all the existing methods for as()
showMethods("coerce")

参考

Chambers, John M. (2016) Extending R, Chapman & Hall. (Chapters 9 and 10.)

也可以看看

如果您考虑使用 try(as(x, cl)) ,请考虑使用 canCoerce(x, cl)

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Force an Object to Belong to a Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。