gpt4 book ai didi

r - 在R中安全创建S3泛型

转载 作者:行者123 更新时间:2023-12-03 08:42:45 26 4
gpt4 key购买 nike

Henrik Bengtsson为互联网提供了一种不错的creating S3 generics in R方式,而不必理会它们是否早在2002年就已经创建了。

他的函数setGenericsS3所做的基本上是:

  • 检查名称是否正确
  • 检查是否有一个名称为
  • 的函数

    如果是这样的话,
  • 检查是否为通用
  • (如果不是),将其重命名为.default并创建一个通用的

  • 如果没有,只需创建泛型。

    当您自己的软件包中没有可用的泛型时,该代码对于自动创建泛型非常有用。当我们超越R时代时,我想知道现在在R中实现相同目标的正确方法是什么。我在R中找不到 isS3Generic()或类似函数,并且Henrik Bengtsson的代码起源于R 2.14中引入的强制命名空间。我记得我曾经见过其他实现相同目标的方法,但是找不到它们。

    编辑:我正在寻找S3。函数 isGeneric()仅适用于S4,例如 anova(这是S3泛型):
    > isGeneric('anova')
    [1] FALSE
    > anova
    function (object, ...)
    UseMethod("anova")
    <bytecode: 0x04dc7a18>
    <environment: namespace:stats>

    最佳答案

    您可以使用isGenericS3包的R.methodsS3函数。请参见下面的代码:

    library(R.methodsS3)
    isGenericS3(anova)
    # [1] TRUE

    关于r - 在R中安全创建S3泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8474872/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com