[英]R: class metadata location
我有一個與在R中創建S4類有關的問題。根據手冊,“ setClass”函數具有命名屬性“ where”,該屬性定義了應將創建的類的元數據存儲在何處。
但是,如果我執行以下操作
> en <- new.env(parent=emptyenv())
> setClass("A", representation(x="numeric"), where=en)
[1] "A"
Warning message:
In getPackageName(where) :
Created a package name, "2012-04-26 12:56:39", when none found
我可以使用刪除
> rm(en)
並且仍然能夠使用該類,例如
> new("A", x=1)
An object of class "A"
Slot "x":
[1] 1
這是為什么?
提前致謝,
斯文
方法包將類定義緩存在methods:::.classTable
,可能出於效率(類查找)的原因。 removeClass("A", where=en)
將同時刪除緩存的版本和定義(盡管會生成虛假警告)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.