问题标签 [reference-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 新的参考类有什么意义?
显然,John Chambers在 2.12 版中为 R添加了参考类。网上似乎还没有太多信息,但他们称它们为 R5 类,这意味着它们与 S3 和 S4 类处于同一水平。
问题:什么是引用类,它如何与现有的类类型相适应?
r - R中引用类的initialize()方法中的自动分配
我正在使用一个包含几十个字段的参考类。我已经设置了一个initialize()
接收列表对象的方法。虽然一些字段依赖于列表元素的进一步计算,但大多数字段都是直接从列表元素分配的:
我在想把它自动化一点会很好。举一个 R 伪代码的例子(这个例子显然行不通):
我尝试过一些结束运行<<-
,例如做一些类似的事情:
但没有骰子。
我的猜测是,这种行为在当前引用类的化身中根本不可能,但认为如果有人在 SO 领域知道更好的方法来做到这一点,可能值得一看。
oop - 在 R5 引用类中定义类方法和类变量
我想知道在 R5 引用类中定义类方法和类变量的正确方法。
这是一个例子:
的XX$cc <- "cc"
行为就像cc
是 XX 的类变量,但我不确定这是否是正确的方法。
例如,XX$def <- "hoge" 可以破坏 XX 类生成器。
所以,我想知道是否有定义类变量和方法的标准方法。
提前致谢。
r - 对引用类方法使用“[[ ]]”表示法
在尝试使用 RI 中的新引用类时,如果您对方法使用“[[ ]]”表示法(X[[“doSomething”]] 而不是 X$doSomething),会发现一些奇怪的行为。这种表示法适用于字段,但我最初认为它不适用于方法,直到我发现如果执行“class(X$doSomething)”,然后可以使用“[[ ]]”。下面的简单示例说明了这一点。
我遇到这种情况的原因是因为我想将我的对象组合在一个列表中并创建一个“applyMethod”函数,该函数将指定的方法应用于其中的每个对象。因此,我需要将方法指定为字符串。有谁知道我如何实现这一目标?
r - 如何记录 R 参考类?
如何记录引用类的成员函数的使用?
如果我写一个Rd
带有\usage
块的文件,我该如何避免WARNING
我希望该\usage
块允许我编写如下内容:
然后我会记录\arguments
块中的参数。
如果我这样做,R CMD check
抱怨
并且不将这些方法识别为我需要文档的代码对象。
到目前为止,我正在编写Rd
没有\usage
块的文件并在块中编写上面的代码\examples
,但是我没有地方记录参数,这样check
实际上几乎没有检查。由于我对此不满意,所以我现在向社区询问当前的常见做法。
r - R 参考类中的方法初始化
在尝试实现一些优化算法时,我注意到 R 参考类中有一些奇怪的行为。在特定的初始化方法中似乎有一些幕后的解析魔法,这使得使用匿名函数变得困难。这是一个说明困难的示例:我定义了一个要优化的函数(f_opt),一个在其上运行 optim 的函数,以及一个将这两个作为方法的引用类。奇怪的行为在代码中会更清楚
只是我,还是其他人看起来也像一个错误?
r - 动态扩展引用类时如何控制继承
在 webcrawler/webscraper 设置中,我想动态扩展我的基本参考类URL
,以便能够为各个主机/域编写特定的方法。为了清楚起见,动态我的意思是“在遇到新域时自动生成类定义(例如URL_something.com
,将从 class 继承的类URL
)”。
一种享受,唯一的问题是我的班级WebPage
期望 field 的值url
是 class URL
。它将接受 class 的对象,URL_something.com
因为 this 从 class 继承URL
,但实际上将对象转换为 class 的实例URL
。所以我失去了它实际上是 class 的信息URL_something.com
。
您知道如何防止丢失这些重要信息吗?
代码示例
r - 更新引用类方法
我目前正在为需要时间来生产的大型对象开发参考类 (R5),我想知道是否有人知道比使用 setRefClass 重新定义类并在每次更新方法时重现对象更好的方法来开发方法。
换句话说:可以重新定义现有 Reference 类对象的方法吗?
r - R 引用类中的私有成员
是否可以在 R 引用类中包含私有成员字段。玩一些我有的在线示例:
我讨厌我可以直接更新余额的事实。也许我身上的旧纯 OO,我真的希望能够将平衡设为私有,至少不能从课堂外设置。
想法
r - 如何编写强制方法
我有一堆定制的参考类,想为其中一些编写强制方法。如果函数调用如下所示,那就太好了:
关键部分在哪里...
,因为有时我想为某些强制传递额外的东西(见do.deep = TRUE/FALSE
下文。
但是,为了做到这一点,我是否需要实现一种接受to
参数的“转换器”,尝试实例化指定类的空对象,to
然后调用“常规”方法调度?或者,还有更好的方法?
您将在下面找到我当前的解决方案。它有效,但我“失去”了强制类的选项,character"
因为这个类用于处理常规调度程序的事情,并且to = "character
会导致无限递归。另外,这是很多开销。
编辑 2011-12-02
当然setAs
将是第一个要检查的地址。但是 arg def
in指定的函数setAs
只能接受一个参数,这对我来说通常太死板了。例如,我看不到如何do.deep = TRUE/FALSE
在使用setAs
.