问题标签 [s4]

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.

0 投票
1 回答
230 浏览

oop - 类槽与初始化签名不匹配

考虑以下 S4 类:

它可以通过以下方式实例化:

到现在为止还挺好。但是,当我尝试对 Foo 进行子类化时,出现错误。

就个人而言,我更喜欢使用显式参数来实例化类 Foo 因为代码更...嗯,显式。然而,这似乎是不可能的,不是吗?看起来 的签名initialize必须与该类具有的插槽匹配,否则这是一个等待发生的问题。我错了吗?

0 投票
1 回答
116 浏览

r - R:类元数据位置

我有一个与在 R 中创建 S4 类有关的问题。根据手册,“setClass”函数有一个命名属性“where”,它定义了创建的类的元数据应该存储在哪里。

但是,如果我执行以下操作

我可以删除 en 使用

并且我仍然能够使用该课程,例如

这是为什么?


提前致谢,

斯文

0 投票
1 回答
5860 浏览

r - 为什么不能将“S4”类型强制为“整数”类型的向量?

谁能告诉我为什么会收到此错误:
Error in as.integer(tm) : cannot coerce type 'S4' to vector of type 'integer
我一直在搜索互联网,但无法解决我的问题。

}

0 投票
1 回答
5814 浏览

r - R并行S4类集群错误

我在获取一些代码以使用 R 中的并行包时遇到问题。我使用的是 R 2.15。

这是一个简化的示例...我有一个文件“animal.R”,其中包含以下内容:

然后,在我的 R 终端中,我运行:

启动两个节点的本地集群:

告诉集群节点有关 Animal 类的信息:

然后在集群上运行一些代码:

停止集群:

对 parSapply 的第一次调用按预期工作,但第二次产生此错误:

有什么想法吗?为什么第二次调用 parSapply 不起作用?

0 投票
1 回答
1089 浏览

r - 测试 S4 对象是否为实例

如何测试对象是否是 S4 类的实例(不确定这是否是正确的术语)?但是,我知道该函数isS4,这对于类定义等也返回 true。例如:

trajobject在这种情况下,我只对包含数据的对象感兴趣;在方法或类定义中没有那么多。是否有可用于测试 S4 对象是否为实际对象的本机函数?即当使用print(object)输出开始时:

“foo”类的对象.....

0 投票
2 回答
8150 浏览

oop - 如何为 S4 类定义子集运算符?

我无法找出为 S4 类定义 、 和子集运算符[$正确方法。[[

谁能为我提供一个为 S4 类定义这三个的基本示例?

0 投票
3 回答
1028 浏览

r - setClass 使表示为任何类

有什么方法可以让我的一个班级成为任何班级吗?

即类似的东西

setClass("myClass", 表示(A="any"))

我试过“S4”,但这不起作用

0 投票
3 回答
202 浏览

r - 典型公式槽

我正在尝试使用类型公式的插槽。但公式不是基本数据类型。我该怎么做才能创建一个插槽来存储公式之类的对象。还是有意禁止将一般 S3 对象存储为插槽?如果有意使用 S4 类型的插槽,如何将 S3 类公式转换为 S4 类?

0 投票
2 回答
185 浏览

r - R-继承的数字方法中用于分块数据的 S4 类将不起作用

我想在 R 中创建一个 S4 类,它允许我从云中访问大型数据集(以块的形式)(类似于 ff 包的目标)。现在我正在使用一个名为“range.vec”的玩具示例(我还不想处理互联网访问),它存储了一个数字序列,如下所示:

我希望这个类从“numeric”继承方法,但我希望它在整个向量上使用这些方法,而不仅仅是我存储的块。例如,我不想为'mean'定义我自己的方法,但我希望'mean'通过使用length()、'['、'[ [' 和我定义的 el() 函数。我还定义了一个分块函数:

当我尝试调用像“mean”这样的方法时,该函数会正确继承,并访问我的长度函数,但返回 NA 因为我没有任何数据存储在 .Data 插槽中。有没有一种方法可以使用 .Data 插槽来指向我的分块函数,或者告诉类在不自己定义每个方法的情况下分块数字方法?如果可以的话,我会尽量避免使用 C 进行编码。任何建议都会非常有帮助!

0 投票
1 回答
1839 浏览

r - 'show' 是一个普通的 S4 通用函数吗?

我正在尝试为我的类创建一个方法,该方法继承自 data.frame。我最初希望也能从 data.frame 继承“show”方法,但我也可以自己编写。我定义了我的类和“显示”方法如下:

当我show在 R 控制台中输入时,它会打印出:

从包“methods”定义的“show”的标准泛型

所以看起来我不需要自己使用 StandardGeneric() 将它变成泛型。但是当我运行我的setMethod("show", signature(x="SCvec"), function(x) print(x))线路时,我得到了错误

我已经定义了这个方法,就像我定义任何其他方法一样。为什么这个方法定义不起作用?“显示”与其他通用功能不同吗?