引用类的 R 测试

标签 r reference-class

是否有一种快速而肮脏的方法来测试实例是否来自引用类?

标准 R 对象测试产生以下结果 - 但似乎没有专门标记引用类。

classy <- setRefClass('classy',
    fields = list(
        count = 'numeric'
    ),
    methods = list(
        initialize = function( data=NULL ) {
            .self$data <<- data
        }
    )
)

instance <- classy$new() # instantiation

isS4(instance) # TRUE
mode(instance) # "S4"
typeof(instance) # "S4"
class(instance) # [1] "classy" attr(,"package") [1] ".GlobalEnv"
dput(instance) # new("classy", .xData = <environment>)
str(instance) # 
# Reference class 'classy' [package ".GlobalEnv"] with 1 fields
#  $ count: num(0) 
#  and 13 methods, of which 1 are possibly relevant:
#    initialize

最佳答案

尝试这个:

 inherits(instance, "envRefClass")
# should return [1] TRUE

这可以在 help(ReferenceClasses) 的“继承”部分找到。 .我怀疑约翰钱伯斯可能会反对称其为“肮脏的”。

Apropos Hadley 的评论,is记录的行为与 inherits 大致相同但具有识别条件继承的额外能力:
is(instance, "envRefClass")
#TRUE

关于引用类的 R 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13297841/

相关文章:

r - 使用 roxygen2 R CMD 检查 codoc 不匹配警告记录引用类

R:引用类类型的引用类中的字段

r - 时空克里金法

R sqldf - 循环内部/外部的索引

r - 找到所有可能的方法将元素列表分成给定数量的相同大小的组

r - 如何求解上界变量的多维积分方程

r - 如何在R中拟合具有两个主成分的线性回归模型?

r - 在两个其他引用类对象之间传递对引用类对象的引用(足球示例)

r - 在 S4 或引用类中调用多个槽或字段

r - 依赖注入(inject) : how to use/implement PicoContainer Framework in R