我是R的新手,因此很难找出如何从集合函数中检索数据框中字段/列的完整列表。R中的聚合函数
例如,我有一个数据帧df有200多个字段。现在,我想将数据帧分组在特定字段df.a上,然后按另一个字段df.b进行排序。但是,在输出数据框中,我希望每个包含所有200个字段的行而不是只包含df.a和df.b字段。
请帮我理解如何做到这一点。
我是R的新手,因此很难找出如何从集合函数中检索数据框中字段/列的完整列表。R中的聚合函数
例如,我有一个数据帧df有200多个字段。现在,我想将数据帧分组在特定字段df.a上,然后按另一个字段df.b进行排序。但是,在输出数据框中,我希望每个包含所有200个字段的行而不是只包含df.a和df.b字段。
请帮我理解如何做到这一点。
您可以编写自己的函数,但如果使用已编写,调试和性能调整的函数,它可能是最好的。包dplyr
非常适合这些事情。
我发现自己经常写线,如:
df %>% group_by(a) %>% arrange(b) %>% summarise(total = sum(b))
哪里df
是我的数据框,group_by
是函数,以便将行按特定列(或一组列),并arrange
是重新排序功能你的行由一列(或一组列)组成。 summarise
是一种执行聚合并生成数据摘要的方法。 %>%
是'pipe'运算符,用于将左侧表达式的结果作为右侧函数的第一个参数提供,而不是编写难以读取或创建中间一次性变量的多个嵌套调用。
希望这有助于或给你一些更好的想法。
感谢Kliron的答案。这是我正在寻找的。但是,只是想知道如何使用dplyr来执行特定列。 –
看看编辑过的帖子。您可以使用汇总来生成数据的汇总/汇总。如果您想要针对特定问题的具体答案,请在上面的问题中给出一个简单的示例数据框和期望的输出。 – kliron
欢迎来到StackOverflow!请阅读关于[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)以及如何给出[可重现的示例]的信息(http://stackoverflow.com/questions/ 5963269)。这会让其他人更容易帮助你。 –
[R分组功能:sapply vs. lapply vs. apply。与tapply与通过与聚合](http://stackoverflow.com/questions/3505701),[同时聚合多个变量](http://stackoverflow.com/questions/9723208),[如何总结一个变量按组?](http://stackoverflow.com/q/1660124) – zx8754