簡體   English   中英

R:類元數據位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM