【问题标题】:Programmatically distinguishing S3 and S4 objects in R以编程方式区分 R 中的 S3 和 S4 对象
【发布时间】:2011-08-05 16:54:37
【问题描述】:

如果给定一个对象x,有没有办法分类它是S3还是S4(或“其他”)?我查看了is.object()isS4(),并且可以识别出某物是一个对象(或不是),它是一个S4 对象(或不是)。但是,在我看来,S3 对象并不是所有不是 S4 对象的对象的补充。

因此,如何以编程方式完成这些分配?

这是一个让我烦恼的例子,取自is.object()的帮助:

a = as.factor(1:3)
is.object(a)  # TRUE
isS4(a) # FALSE

这是否意味着a 是一个S3 对象?

【问题讨论】:

    标签: r object s4


    【解决方案1】:

    如果它是一个对象并且不是 S4,那么它就是一个 S3:

    is.object(foo) & !isS4(foo)
    

    【讨论】:

    • 嗯,这几乎可以回答它。 :)
    • 我现在认为应该有一个isS3,就像你对any... 的建议一样。事实上,基于逻辑操作 (A & !B) 的分配不允许与 AB 中的每一个成对互斥的 C(例如,未来的一些既不是 S3 的“S5”类也不是 S4)。目前,这可行,但我觉得我正在走向 Y2K 类型的错误。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2020-05-24
    • 1970-01-01
    • 2021-10-02
    • 2018-10-11
    • 2010-09-28
    • 1970-01-01
    相关资源
    最近更新 更多