R 中的多类对象

nat*_*gle 1 r class dplyr

我最近开始使用 dplyr 包进行数据操作,但没有完全掌握 group_by() 的输出。在下面的示例中,我的单个 iris.2 对象如何具有 4 个不同的类?该函数如何知道要使用哪个类?IE 如果我调用 print 它将调用 print.tbl_df 方法而不是 print.data.frame 。

library(dplyr)
iris.1 <- iris
iris.2 <- group_by(iris, Species)
class(iris.1)
Run Code Online (Sandbox Code Playgroud)

[1]“数据框”

class(iris.2)
Run Code Online (Sandbox Code Playgroud)

[1]“grouped_df”“tbl_df”“tbl”“data.frame”

ctb*_*own 5

class函数返回对象的完整继承。在您的示例中,iris.2首先是类的对象grouped_df。该类的任何方法grouped_df都将优先。接下来是一个tbl_df类,然后是一个tbl类,最后是一个data.frame。当调用诸如 之类的方法时,R 将按顺序print查找这些类的方法,并使用遇到的第一个方法。print