gpt4 book ai didi

r - 为什么 S4 继承在环境之间丢失?

转载 作者:行者123 更新时间:2023-12-01 12:35:59 26 4
gpt4 key购买 nike

假设我有一个类 MyClass 定义如下:

setClass(
"MyClass",
slots = c(message = "character"),
validity = function(object) { T })

如果我创建它的实例,inherits 会按预期工作:

myInstance <- new("MyClass", message = "Hello")

inherits(myInstance, "MyClass")

TRUE

但是,我将实例放入环境中并再次将其带回来后,它不起作用:

e <- new.env(hash = T, parent = emptyenv())

assign("MyInstance", myInstance, envir = e)

inherits(mget("MyInstance", envir = e), "MyClass")

FALSE

但是数据还在:

mget("MyInstance", envir = e)

$MyInstance An object of class "MyClass" Slot "message": [1] "Hello"

即使在环境之间保存和加载实例时,我如何告诉 R 维护我的 S4 类?

最佳答案

mget 返回所请求对象的命名列表。您实际上是在检查列表。要检查对象,您需要从 mget 的输出中提取它。或者,只需使用 get 即可返回感兴趣的对象。

mget 在请求一堆对象时很有用,但如果您只想要一个,那么 get 就可以了。

关于r - 为什么 S4 继承在环境之间丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29748037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com