using dplyr's do() with summary()

后端 未结 3 1839
清酒与你
清酒与你 2021-01-05 20:28

I would like to be able to use dplyr\'s split-apply-combine strategy to the apply the summary() command.

Take a simple data frame:

3条回答
  •  半阙折子戏
    2021-01-05 21:09

    You can use the SE version of data_frame, that is, data_frame_ and perform:

    df %>%
      group_by(class) %>%
      do(data_frame_(summary(.$value)))
    

    Alternatively, you can use as.list() wrapped by data.frame() with the argument check.names = FALSE:

    df %>%
      group_by(class) %>%
      do(data.frame(as.list(summary(.$value)), check.names = FALSE))
    

    Both versions produce:

    # Source: local data frame [2 x 7]
    # Groups: class [2]
    # 
    #    class  Min. 1st Qu. Median  Mean 3rd Qu.  Max.
    #   (fctr) (dbl)   (dbl)  (dbl) (dbl)   (dbl) (dbl)
    # 1      A   100     105    110   110     115   120
    # 2      B   800     820    840   840     860   880
    

提交回复
热议问题