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