2015-11-02 218 views
-1

我是R的新手,因此很難找出如何從集合函數中檢索數據框中字段/列的完整列表。R中的聚合函數

例如,我有一個數據幀df有200多個字段。現在,我想將數據幀分組在特定字段df.a上,然後按另一個字段df.b進行排序。但是,在輸出數據框中,我希望每個包含所有200個字段的行而不是隻包含df.a和df.b字段。

請幫我理解如何做到這一點。

+7

歡迎來到StackOverflow!請閱讀關於[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)以及如何給出[可重現的示例]的信息(http://stackoverflow.com/questions/ 5963269)。這會讓其他人更容易幫助你。 –

+0

[R分組功能:sapply vs. lapply vs. apply。與tapply與通過與聚合](http://stackoverflow.com/questions/3505701),[同時聚合多個變量](http://stackoverflow.com/questions/9723208),[如何總結一個變量按組?](http://stackoverflow.com/q/1660124) – zx8754

回答

1

您可以編寫自己的函數,但如果使用已編寫,調試和性能調整的函數,它可能是最好的。包dplyr非常適合這些事情。

我發現自己經常寫線,如:

df %>% group_by(a) %>% arrange(b) %>% summarise(total = sum(b)) 

哪裏df是我的數據框,group_by是函數,以便將行按特定列(或一組列),並arrange是重新排序功能你的行由一列(或一組列)組成。 summarise是一種執行聚合並生成數據摘要的方法。 %>%是'pipe'運算符,用於將左側表達式的結果作爲右側函數的第一個參數提供,而不是編寫難以讀取或創建中間一次性變量的多個嵌套調用。

希望這有助於或給你一些更好的想法。

+0

感謝Kliron的答案。這是我正在尋找的。但是,只是想知道如何使用dplyr來執行特定列。 –

+0

看看編輯過的帖子。您可以使用匯總來生成數據的彙總/彙總。如果您想要針對特定​​問題的具體答案,請在上面的問題中給出一個簡單的示例數據框和期望的輸出。 – kliron