gpt4 book ai didi

r - 在 R 中,如何制作一种直接调整该对象插槽内值的 S4 对象的方法?

转载 作者:行者123 更新时间:2023-12-04 23:32:12 24 4
gpt4 key购买 nike

有没有办法允许 S4 对象的方法直接调整该对象的插槽内的值,而无需将整个对象复制到内存中,并且必须在方法结束时将其重新写入父环境?现在我有一个带有插槽的对象,它可以跟踪自己的状态。我调用了一个将它推进到下一个状态的方法,但现在似乎我必须将每个值(或调用该方法的对象的副本)分配()回父环境。结果,面向对象的代码似乎比简单地调整循环中的各种状态变量的代码运行得慢得多。

最佳答案

R 有三个面向对象 (OO) 系统: S3 , S4 引用类 (后者曾一度被称为 [[R5]],但它们的正式名称是 Reference Classes)。

引用类(或引用类)是 R 2.12 中的新内容。它们满足了对可变对象的长期需求,而这些需求以前由非核心包(如 R.oo、proto 和 mutatr)填充。虽然核心功能是可靠的,但引用类仍在积极开发中,一些细节将发生变化。引用类的最新文档总是可以在 ?ReferenceClasses 中找到。

引用类与 S3 和 S4 之间有两个主要区别:

  • Refclass 对象使用消息传递 OO
  • Refclass 对象是可变的:修改语义上通常的 R 副本
    不适用。

  • 这些属性使这个对象系统的行为更像 Java 和 C#。
    在这里阅读更多:
  • http://adv-r.had.co.nz/R5.html
  • http://www.inside-r.org/r-doc/methods/ReferenceClasses
  • 关于r - 在 R 中,如何制作一种直接调整该对象插槽内值的 S4 对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412942/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com