9

object が与えられた場合、それがor (または「その他」)xであるかどうかを分類する方法はありますか? 私は と を見て、何かがオブジェクトである (またはそうでない) ことと、それが S4 オブジェクトである (またはそうでない) ことを識別できます。ただし、S3 オブジェクトが S4 オブジェクト以外のすべてのオブジェクトを補完するものであるとは思えません。S3S4is.object()isS4()

したがって、これらの割り当てをプログラムでどのように行うことができますか?

のヘルプから抜粋した、私を悩ませているものの例を次に示しますis.object()

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

それaS3オブジェクトということですか?

4

1 に答える 1

10

それがオブジェクトであり、S4 でない場合、それは S3 です。

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

is.objectモノにクラス属性がある場合に設定されるいくつかの魔法の OBJECT ビットをチェックするためany(names(attributes(foo))=="class")、S3 オブジェクトを定義する基本的に高速な方法です。

于 2011-08-05T17:02:42.627 に答える