每个组的变量上的映射摘要

时间:2019-06-14 13:46:38

标签: r dplyr

我想为每个小贴士在变量上使用summary。 我无法实现自动化,我发现的唯一方法是手工完成:

diamonds %>%
  group_by(cut) %>% 
  summarise(
    min = min(price), 
    Q1 = quantile(price, 0.25),
    median = median(price), 
    mean = mean(price), 
    Q3 = quantile(price, 0.75), 
    max = max(price)
  )

#   cut         min    Q1 median  mean    Q3   max
#   <ord>     <dbl> <dbl>  <dbl> <dbl> <dbl> <dbl>
# 1 Fair        337 2050.  3282  4359. 5206. 18574
# 2 Good        327 1145   3050. 3929. 5028  18788
# 3 Very Good   336  912   2648  3982. 5373. 18818
# 4 Premium     326 1046   3185  4584. 6296  18823
# 5 Ideal       326  878   1810  3458. 4678. 18806

但是在summarise中写每一行很无聊,我想为每组映射summary。我尝试使用purrr,但似乎可以映射多个变量,但不能映射单个变量的多个组。

感谢您的帮助,并为英语不好对不起

1 个答案:

答案 0 :(得分:1)

在这种情况下,您可以尝试以下操作:

diamonds %>% 
  group_by(cut) %>% 
  do(as.data.frame(as.list(summary(.$price))))

# A tibble: 5 x 7
# Groups:   cut [5]
  cut        Min. X1st.Qu. Median  Mean X3rd.Qu.  Max.
  <ord>     <dbl>    <dbl>  <dbl> <dbl>    <dbl> <dbl>
1 Fair        337    2050.  3282  4359.    5206. 18574
2 Good        327    1145   3050. 3929.    5028  18788
3 Very Good   336     912   2648  3982.    5373. 18818
4 Premium     326    1046   3185  4584.    6296  18823
5 Ideal       326     878   1810  3458.    4678. 18806