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


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