在dplyr中使用group_by时如何获取整体统计信息?

时间:2016-07-16 03:09:31

标签: r group-by dplyr

我正在使用dplyr来计算各组之间的一些摘要统计信息,但我也希望获得所有数据的相同统计信息(在同一行代码中)

到目前为止,我只能想到:

aux.1 <- iris %>% 
group_by(Species)  %>% 
summarise("stat1" = mean(Sepal.Length), 
          "stat2" = sum(Petal.Length) )

aux.2 <- iris %>% 
summarise("stat1" = mean(Sepal.Length), 
          "stat2" = sum(Petal.Length) )

无论如何,我可以在一行代码中获得所有统计数据吗?

2 个答案:

答案 0 :(得分:2)

您需要两个单独的from django.utils.translation import ugettext_lazy as _ class Sales_form(forms.ModelForm): class Meta: model = Sales fields = ('customer','ctype') error_messages = { 'ctype' : { 'required' : _("Hey yow! this field is required!") } } 个链,但您可以将它们与dplyr放在一起:

bind_rows
aux <- bind_rows(
  iris %>% 
    group_by(Species)  %>% 
    summarise("stat1" = mean(Sepal.Length), 
              "stat2" = sum(Petal.Length)), 
  iris %>% 
    summarise("stat1" = mean(Sepal.Length), 
              "stat2" = sum(Petal.Length)) %>%
    mutate(Species = "All")
  )

aux

答案 1 :(得分:1)

如果您有兴趣查看data.table包,这很容易实现:

library(data.table)
# have to make a copy of the internal data.frame for testing
irisTemp <- iris
setDT(irisTemp)

# calculate group statistics
irisTemp[, c("meanVal", "sumVal") := .(mean(Sepal.Length), sum(Petal.Length)),
         by="Species"]

这可以是一个快速有效的大数据集库。