首页 > 解决方案 > 如何在 S4 对象中包含 S3 超类作为插槽?

问题描述

我想要一个包含 S3 超类的插槽,例如connection. 大多数connection实例实际上是子类型,例如textConnectionor pipe

似乎每个子类型都必须单独声明setOldType,否则该new函数将不接受连接。

为了更具体:

setOldClass("connection")
setOldClass(c("pipe", "connection"))
setOldClass(c("textConnection", "connection"))

setClass("Thing", 
         slots = list(handle = "connection")
)

thing1 <- new("Thing", handle=textConnection("hiarylah"))
thing2 <- new("Thing", handle=pipe("cat ~/iris.csv"))

有没有办法声明 Thing 以便它接受从连接继承的任何内容?我不想每次发明新的子类时都添加一行。

标签: rs4

解决方案


推荐阅读