Предположим, у меня есть класс MyClass
, определенный следующим образом:
setClass(
"MyClass",
slots = c(message = "character"),
validity = function(object) { T })
Если я создам его экземпляр, inherits
будет работать как положено:
myInstance <- new("MyClass", message = "Hello")
inherits(myInstance, "MyClass")
ПРАВДА
Однако это не работает после того, как я поместил экземпляр в среду и снова вернул его:
e <- new.env(hash = T, parent = emptyenv())
assign("MyInstance", myInstance, envir = e)
inherits(mget("MyInstance", envir = e), "MyClass")
ЛОЖНЫЙ
Но данные все равно есть:
mget("MyInstance", envir = e)
$MyInstance Объект класса "MyClass" Слот "сообщение": [1] "Привет"
Как я могу указать R поддерживать мои классы S4 даже при сохранении и загрузке экземпляров между средами?
mget("MyInstance", envir = e)
? и посмотреть, что возвращается. - person Mamoun Benghezal   schedule 20.04.2015