在R中检查对象类的首选方法

pjv*_*aar 25 coding-style r typechecking

在R中检查对象类的首选方法是什么?

(1)

is.data.frame(df)
Run Code Online (Sandbox Code Playgroud)

(2)

class(df) == 'data.frame'
Run Code Online (Sandbox Code Playgroud)

(3)

'data.frame' %in% class(df)
Run Code Online (Sandbox Code Playgroud)

Ben*_*ker 26

我会说

inherits(df,"data.frame")
Run Code Online (Sandbox Code Playgroud)

要么

is(df,"data.frame")
Run Code Online (Sandbox Code Playgroud)

除此之外,列表中的#2可能会失败,因为(正如您在#3中建议的那样)class(df)长度> 1.(is.data.frame很好,但并非所有类都有is.方法:请参阅methods("is"))


mik*_*ope 5

对我来说是:

is.data.frame(df)
Run Code Online (Sandbox Code Playgroud)

是在条件下使用的更清晰的选项。另外,这三个选项中的“更少代码”选项是否对您很重要。