s4

    5热度

    3回答

    我想查看与某个对象类关联的所有方法的列表。例如。如果我看到某个模型适合例程返回类“foo”的对象,我想知道该包(或任何其他包)是否已定义方法,如simulate.foo,update.foo,coef.foo,print.foo等。我该怎么做这个? 我知道methods解决逆问题(假设S3级),但显然我不想通过了为了找出如果我的课感兴趣有一个定义的print函数中的每个对象进行搜索。我可能在这里忘

    1热度

    2回答

    我使用S4 oop在R中运行土壤水分平衡模型,并创建了类water的平衡量我无法更新方法内的槽。这里有一些简单的东西,我没有看到。我的更新代码是: setGeneric(name="updateASW",def=function(object,...){standardGeneric("updateASW")}) setMethod(f = "updateASW", signature(ob

    0热度

    1回答

    我最近试图将所有函数组织到包中,以避免在每个脚本的顶部有数百行代码。我编写了一系列运行LME4多级模型后使用的函数。这些函数被设计用来生成漂亮的输出表(我知道有些可用的包可以做到这一点,但它们通常不够灵活,无法根据我的需要自定义表)。下面是一个函数的例子,它采用lmer模型的列表(例如,fm0,fm1,fm2),并将固定效果参数和它们各自的标准错误组合到一个输出表格中(稍后我将其与其他模型统计信息

    2热度

    1回答

    我收到消息 错误parent.frame():节点堆栈溢出 错误综合报导期间:节点堆栈溢出 当我尝试构建使用S4命令“作为”的对象,但只有当超宣布“虚拟”。 类层次结构如下所示: PivotBasic包含枢轴包含型号 为枢纽和枢纽基本的setClass命令和PivotBasic构造如下。类Pivot没有构造函数。 Model构造函数太大而无法插入。 这实在不是什么大不了的(我认为),因为如果“虚拟

    10热度

    2回答

    我的S4类有一个多次调用的方法。我注意到执行时间比单独调用类似函数时慢得多。所以我在类中添加了一个类型为“function”的插槽,并使用该函数代替方法。下面的例子显示了这样做的两种方式,并且它们都比对应的方法运行速度快得多。另外,该例子表明,该方法的速度较低并不是由于方法必须从类中检索数据,因为即使他们也这样做,函数的速度更快。 当然,这种做事方式并不理想。我想知道是否有办法加快方法调度。有什么

    3热度

    1回答

    我想创建一个S4方法'myMethod',它不仅调用该函数的第一个参数的类,还调用其中一个时隙的值这类的。 例如 myObject的: @ SLOT1 = “A” @ ... 我想myMethod的(myObject的),以回报东西SLOT1 = “A” 不同,插槽2 = “B”。 我可以避免硬编码'myObject'代码中的'if'吗?

    2热度

    1回答

    在我的包中,我想从提供的包中继承TheBaseClass类(因此它不在我的范围内)。有一个创建这个类的对象的函数。这是该代码的一个最简单的例子。 setClass("TheBaseClass", representation(a="numeric")) initBase <- function() new("TheBaseClass", a=1) # in reality more comple

    4热度

    1回答

    我注意到,定义了as.matrix或as.data.frame,因为S4类 的S3方法使得例如lm (formula, objS4)和prcomp (object)开箱即用。如果将它们定义为S4方法,则这不起作用。 为什么这些方法是定义为S3还是S4方法很重要? 示例as.data.frame: setClass ("exampleclass", representation (x = "data

    1热度

    2回答

    我正在使用tm软件包,并且正在寻找使用R的文档的Flesch-Kincaid分数。我发现koRpus软件包有很多指标,包括阅读级别,并开始使用它。但是,返回的对象似乎是一个非常复杂的s4对象,我不明白如何解析。 所以,我将此我的文集: txt <- system.file("texts", "txt", package = "tm") (d <- Corpus(DirSource(txt, en

    10热度

    2回答

    有人可以解释为什么在定义一个新类并重载操作符时,重载旧式S3类注册表中的操作符时无法按预期工作工作。 如以下示例所示。 这不起作用。 require(ff) setOldClass(Classes=c("ff_vector")) setMethod( f="*", signature = signature(e1 = c("ff_vector"), e2 = c("ff_v