【问题标题】:What is the significance of the new Reference Classes?新的参考类有什么意义?
【发布时间】: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


【解决方案1】:

ReferenceClasses 文档的请求不时出现,例如在 r-devel 列表中。到目前为止,最好的答案是实际看看 help(ReferenceClasses) 给你带来了什么——这是一个相当不错的开始。

然后有几个介绍:

正如 mdsummer 在评论中指出的那样,R5 是一个短暂的笑话。已经有另一个与 R 相关的项目称为 R5,John 更喜欢 ReferenceClasses。我认为他们会留下来。人们已经将它们用作例如Jeff Horner 是他的新 Rack 软件包。

【讨论】:

  • 好的,所以它们不是 R5 类而是 ReferenceClasses,它们看起来很像比 S3 类更完整的面向对象思想的实现。我将通过链接查看更多内容,并尝试围绕它们进行思考。感谢您指出正确的方向。
  • R5 方法与类相关联,而 S3 方法与通用函数相关联。 R5 比 S3 更完整或更好。
  • 它们应该是“R8Classes”(本着 I18n 和 L10n 的精神)
  • 或者如果我们足够喜欢它们,“GR8classes”!
  • @DirkEddelbuettel,我想你的意思是 Jeffrey Horner 的新 Rook 包。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-22
  • 2019-06-27
相关资源
最近更新 更多