2014-11-05 58 views
0

我最近開始使用dplyr包進行數據操作,但是沒有完全掌握group_by()的輸出。在下面的例子中,我的單個iris.2對象有4個不同的類嗎?函數如何知道使用哪個類? IE瀏覽器如果我打電話打印它將調用print.tbl_df方法,而不是print.data.frame。R中的多類對象

library(dplyr) 
iris.1 <- iris 
iris.2 <- group_by(iris, Species) 
class(iris.1) 

[1] 「data.frame」

class(iris.2) 

[1] 「grouped_df」 「tbl_df」 「TBL」 「data.frame」

+1

您可能想瀏覽http://adv-r.had.co.nz/OO-essentials.html#s3 – hadley 2014-11-05 15:20:44

回答

4

class該函數返回完整的繼承的對象。在你的例子中,iris.2首先是類grouped_df的一個對象。 grouped_df課程的任何方法都將採用先例。接下來,它是tbl_df類,然後是tbl類,最後是data.frame。當調用諸如print的方法時,R將按照該順序查找這些類的print方法,並將使用它遇到的第一個方法。