问题标签 [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.
r - R 中 S4 对象、方法和编程的来源
由于我经常遇到需要 S4 编程来保持概览的情况,因此我收集了很多关于 S4 对象、方法和编程的资源。我在这里列出了它们作为参考。请添加您自己的来源。
在网上
methods
帮助文件:来自包方法的帮助文件,其中可以找到许多必要的信息- S4 类 15 页:关于 S4 对象编程的简短介绍。
- S4 方法如何工作:关于底层机制的更多解释。
- 对 S4 的介绍并不那么简短:带有如何构造类的实际示例和一些有用的技巧。它包含一个方便的概述作为附录,但也包含错误。应该小心使用这个。
- R中的OOP:带有S3和S4实际示例的讲义
- S4 对象:Thomas Lumley 关于 S4 对象的介绍。
- R 面向对象编程:深入介绍 R 中的面向对象编程。它涵盖了 S3、S4 和 S4 参考类。随附的序列包实现了整个幻灯片中使用的类系统。
图书
- Software for Data Analysis-Programming with R (J. Chambers) :一个经典的,虽然没有在所有地方都得到正面评价,但它包含 S4 的大部分内容
- 用于生物信息学的 R 编程(R. Gentleman):专门针对与完全基于 S4 的 Bioconductor 合作。但它提供了一个广泛的概述,并且对许多其他人也很有用。
PS:如果有人找到社区复选框,您可以将其设为社区拥有的帖子。不知何故,我再也无法在编辑窗口中找到它了...
class - 从 S4 类定义中的包中识别 S3 (?) 类
从 S4 类定义识别的旧包中获取类时,我遇到了一些麻烦。我不断收到错误
一个可重现的例子:
尝试class(chron(0))
时,答案是"dates" "times"
。使用is.numeric(chron(0))
,答案是TRUE
。然而,当我将插槽日期类设置为 时"numeric"
,我得到同样的错误,但没有警告消息。
我觉得我忽略了一些明显的东西,但我还没有在文档中找到它。任何人任何指针?
PS:我知道这个chron
包至少很奇特,但我有充分的理由使用它。另外,其他软件包可能会出现此问题。将此视为一般问题的示例。所以请不要告诉我使用 Date 或 POSIXt 类。这是我现在正在使用的 hack。
r - 方法的 S4 缺少参数或 NULL 参数?
有没有办法定义当方法的参数丢失或 NULL时会发生什么?
在下面的示例中,无论我键入foo()
还是,我都想调用相同的函数foo(NULL)
。当然,我知道我可以有一个方法setMethod("foo","NULL",function(x) foo())
,但那是代码复制和可能的错误来源。
谢谢!
oop - R:什么是老虎机?
有谁知道R中的插槽是什么?
我没有找到它的含义的解释。我得到一个递归定义:“插槽函数返回或设置有关对象的各个插槽的信息”
帮助将不胜感激,谢谢 - Alley
r - R中的S4类矩阵
这是上一篇文章的后续问题。
我需要为一个需要一个矩阵和一个值initialize()
的 S4 类(名为 )编写一个方法。它应该被定义为一个带有正式参数的函数,并且应该将下三角元素放入对象中。Band
k
(x, k)
X
任何建议表示赞赏。
r - S4 类的错误处理
我是这里的新手。我正在尝试使用 S4 类。在我的一些设置方法中,我想取一个输入值并测试它是否有效。如果它是有效的,我想分配它。如果它无效,我想生成一个可以测试的警告。这是一个简单的例子:
当我尝试分配一个字符时,这会生成一条警告消息:
但我希望能够测试分配失败。这样做的好方法是什么?谢谢。
r - 哪些包充分利用了 S4 对象?
哪些 R 包充分利用了 S4 类?我正在寻找适当使用 S4 的软件包(即当底层问题的复杂性需要时),编写良好且文档齐全(因此您可以阅读代码并了解正在发生的事情)。
我很感兴趣,因为我很快就会教 S4,我想向学生指出实践中的好例子,这样他们就可以阅读代码来帮助他们学习。
r - 在 S4 类中同时更新对象和返回值
我需要编写一种同时更新对象并返回值的方法。我想知道是否有办法在 S4 课程中做到这一点。这样做的背景是我正在尝试编写一个 S4 类来生成一个列表,只有在知道私钥的情况下才能访问其中的每个元素。为此,我需要一个方法 getNewSlot 来同时更新列表和键列表的长度并返回索引键对。代码如下:
这是此方法的输出。如您所见,代码返回所需的“索引、键”对,但不更新对象。
r - 如何在包中显示 S4 函数的源代码?
我使用 R 中的 topGO 包来分析基因富集,代码如下:
我想查看和更改RunTest
功能以及更改的GenTable
功能ResultTable
,但我不知道如何显示功能。有了getAnywhere("GenTable")
我没有得到我想要的硬代码。
找到与“GenTable”匹配的单个对象
在以下地方发现
有价值
我怎样才能做到这一点?