【发布时间】:2011-02-28 00:47:53
【问题描述】:
显然 John Chambers added Reference Classes 在 2.12 版中转为 R。网上好像还没有太多信息,不过他们称它们为 R5 类,这意味着它们与 S3 和 S4 类处于同一水平。
问题:什么是引用类,它如何适应现有的类类型?
【问题讨论】:
-
我认为“R5”是在 Rcpp 演示文稿中开的一种玩笑——部分原因是当时正在讨论对全新 R 的需求,我认为这不是一个严肃的名字。参考类完全适合 R 的 S4 afaik。在 SO [r] 聊天中搜索“R5”会得到 chat.stackoverflow.com/search?q=R5&room=106
-
基于引用意味着对象是可变的 - 更改不会复制。
-
事实上,很大程度上取决于你想做什么。 S4 有时会派上用场(尤其是对对象的调度和更严格的检查)。参考类似乎非常适合处理需要在分析之前进行转换的大型数据集。但对于其余部分,我希望我的对象保持原样。
-
@Joris:有道理。有点令人沮丧的是,现在 R 有三个不完全兼容的 OO 系统。我宁愿学习一个并正确地学习它。所以我倾向于坚持使用 S3 课程。即使我可以看到它们的局限性,但它们使用起来非常简单,很诱人。如果 S4 课程得到更一致的表扬,我会努力真正学习它们。
-
看起来参考类在 R 核心中进展顺利。
trace现在 (R 2.13.1) 支持它们。
标签: r reference-class