问题标签 [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 - 对于包含 S4 类的包,推荐的包构建工作流程是什么?
我想构建一个包含S4 classes
使用 R Studio 和roxygen2
. roxygen2
当我将几个函数引入S4 classes
我的包时,我已经使用语法记录了我的所有函数。
现在我意识到没有开箱即用的“@slot”功能。所以我想知道我怎样才能让我的所有文档都为其他功能工作,并像这个线程S4 classes
中建议的那样手动记录?
或者换句话说,您会推荐哪个工作流程来构建一个包含老式函数和S4 classes
?
编辑:您是否建议将 R Studio 构建工具配置为不创建 .Rd 文件。roxygenize
手动然后添加信息?这仍然会导致覆盖类的手动生成的 .Rd 文件......
r - S4 中的 setMethod - 如何定义不需要对象作为参数的方法?
在带有 S4 类的 R 中,我定义了一个方法来为一个对象分配两个值:
然后按如下方式使用它
但是,这意味着我必须一直写obj
为函数的参数。
是否可以在 S4 中定义一个可以在没有对象本身作为参数的情况下使用的方法?
例如:
我非常感谢任何建议!:)
r - R S4 类和 Matrix 包中的重载 + 运算符
尝试重载+
运算符并将Matrix
包与稀疏矩阵一起使用时,我得到了一个奇怪的效果。我首先定义了一个非常简单的类,它不使用 Matrix 包但有一个+
操作符。然后我对两个稀疏矩阵求和。第一个M+M
添加提供了预期的结果,但第二个抛出了错误。这是一个生成错误的非常简单的代码:
第二次添加会引发以下错误:
如果矩阵不是稀疏的,则不会发生错误。+
I 定义和+
for sparseMatrix之间是否存在一些干扰?我没有+
正确定义运算符吗?
谢谢!
r - 使用 S3 虚拟类作为 S4 类的插槽,出现错误:得到类“S4”,应该是或扩展类“nls.lm”
版本:
我想制作一个使用 nls.lm (包:minpack.lm)函数的输出对象作为插槽的 S4 类:
现在,如果我想在“构造函数”中调用这个类,我可以做这样的事情(对吗?):
并且对象“pippo”似乎已正确初始化。
如果我改用此代码,则会出现错误:
似乎如果我想在新的一些插槽中进行初始化,这会导致 S3 类插槽出现问题?
关于如何避免这个问题的任何线索?
谢谢
r - 将“规范”S3 类转换为新的 S4 类
在R
我想将(强制?)从stats::spectrum
(类“规范”)返回的对象转换为新的 S4 类。S3 类“规范”本质上是一个混合格式的各种信息列表(我已经评论了屏幕输出):
现在假设我们为名为“specS4”的类定义了一个新的 S4 生成器,其中插槽名称是“spec”对象中的名称
并从中生成一个新对象:
将每个组件分配psd3
到其相应插槽的最佳方法是psd4
什么? 一个复杂的问题是spectrum
可能会返回NULL
一些(已知的)字段;分配这些值会引发错误checkSlotAssignment
(对于给定的表示)。
我有一个痛苦的解决方案是:
哪个有效,即使as.specS4.spec
是故意不完整的。
有没有更好的方法来实现什么as.specS4.spec
?这个解决方案似乎不稳定。
r - R:找到产生 S4 插槽输出的源代码?
大家好,
当“lme4”中的“lmer”函数运行时,它会生成一个带有很多插槽的 S4 对象。我对这些插槽之一感兴趣,即模型@X,以及如何产生这个“X”插槽输出。我想尝试为我正在使用的不同模型函数(glmmPQL)重现这个输出,它不会自动产生这个'X'输出(仅供参考'lmer'产生一个'mer'类的对象,插槽'X'是一个模型固定效应的矩阵)。下面的代码显示了我在说什么。
我想弄清楚这个'X'数据是如何产生的?我通过在没有'()'的终端中编写'lmer'的代码来查看它,但我在那里找不到任何东西。我也试过 showMethod('lmer') 但它说 function 'lmer': 。
只是想知道是否有办法获取“X”插槽具体在做什么(或 S4 对象中的任何插槽)的源代码?或者有谁知道如何重现这个?非常感谢您的帮助和时间。
r - S4类中的R公共方法
我想继承一个 S4 类并向该子类添加一个特殊方法。该方法应该只适用于子类,它对我的应用程序中的任何其他类都没有意义。
随着setGeneric
它的工作,但我真的必须定义一个通用函数,尽管它只会与这个对象一起使用吗?注释掉的部分有效,但是没有检查是否使用正确的参数调用函数。这样做的正确方法是什么?提前致谢。
r - 如何在 R 中创建用户定义的 S4 类的数据框
我想创建一个包含不同变量的 data.frame,包括 S4 类。对于像“POSIXlt”(日期)这样的内置类,这很好用:
但是现在我有一个用户定义的类,让我们说一个带有名称和年龄的“Person”类:
但以下失败:
我还尝试使用 [...]-Operator 为 person 类重载
这允许类似向量的行为:
但是以下仍然失败:
也许我必须重载更多运算符才能将用户定义的类放入数据框中?我敢肯定,一定有办法做到这一点,因为 POSIXlt 是一个 S4 类并且它有效!任何使用新 R5 参考类的解决方案也可以!
我不想把我所有的数据都放到 person 类中(你可能会问,为什么“id”不是 person 的成员,我只是不使用数据框)!这个想法是我的 data.frame 代表数据库中的一个表,其中包含许多不同类型的列,例如字符串、数字……还有日期、间隔、地理对象等……而对于我已经拥有的日期一个解决方案(POSIXlt),用于间隔、地理对象等。我可能需要指定我自己的 S4/R5 类。
提前非常感谢。
r - 用 3 个点定义 S4 方法
我正在尝试为我创建的对象定义“c”方法。
就像是
问题是我无法定义 ... 的类,以便正确完成调度。任何想法?
r - 是否有与 unlist() 等效的 S4?
我有一些使用S4
对象及其插槽的经验,所以我知道如何访问特定的插槽和子插槽。我想学习的是如何以unlist
拆分S3
列表的方式“去槽”一个对象。
我的直接目标是让我的一个玩具有一个 S4 对应物,它返回一个对象的元素数量:
(不公平地嘲笑我的代码:-))。我希望不必编写一些递归例程来一次提取一个插槽来转换它们。
编辑:我知道object.size
会返回字节数;不是我在这里追求的。