我现在正在制作一个 R 包,我必须在返回列表和具有 S3 属性的对象之间进行选择。至于列表,好处是对于初学者来说非常容易使用,因为美元符号使所有元素都易于找到。不好的是,它消除了直接继承(我想返回一个带有一些附加信息的 ts 对象)。
另一种方法是为我的 S3 课程设置美元,如下例所示:
object <- 1
class(object) <- "MyClass"
attr(object,"MyAttribute") <- "This is a secret"
`$.MyClass` <- function(x,name) attr(object,name)
object$MyAttribute
但是,我对此有两个问题:
- 在哪里设置美元部分匹配功能,以便用户在 rstudio 中将“MyAttribute”视为有效选择?
- 此外,这是一个很好的做法还是我应该继续使用简单的列表
谢谢