2015-11-02 144 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