@@ -64,24 +64,28 @@ stat_summary_bin <- function(mapping = NULL, data = NULL,
6464StatSummaryBin <- ggproto(" StatSummaryBin" , Stat ,
6565 required_aes = c(" x" , " y" ),
6666
67- extra_params = c(" na.rm" , " orientation" ),
67+ extra_params = c(" na.rm" , " orientation" , " fun.data" , " fun.max" , " fun.min" , " fun.args" ),
68+
6869 setup_params = function (data , params ) {
69- params $ flipped_aes <- has_flipped_aes(data , params , ambiguous = TRUE )
70+ params $ flipped_aes <- has_flipped_aes(data , params )
71+ params $ fun <- make_summary_fun(
72+ params $ fun.data , params $ fun ,
73+ params $ fun.max , params $ fun.min ,
74+ params $ fun.args %|| % list ()
75+ )
7076 params
7177 },
7278
73- compute_group = function (data , scales , fun.data = NULL , fun = NULL ,
74- fun.max = NULL , fun.min = NULL , fun.args = list (),
79+ compute_group = function (data , scales , fun = NULL ,
7580 bins = 30 , binwidth = NULL , breaks = NULL ,
7681 origin = NULL , right = FALSE , na.rm = FALSE ,
7782 flipped_aes = FALSE ) {
7883 data <- flip_data(data , flipped_aes )
79- fun <- make_summary_fun(fun.data , fun , fun.max , fun.min , fun.args )
8084 x <- flipped_names(flipped_aes )$ x
8185 breaks <- bin2d_breaks(scales [[x ]], breaks , origin , binwidth , bins , right = right )
8286
8387 data $ bin <- cut(data $ x , breaks , include.lowest = TRUE , labels = FALSE )
84- out <- dapply(data , " bin" , fun )
88+ out <- dapply(data , " bin" , fun % || % function ( df ) mean_se( df $ y ) )
8589
8690 locs <- bin_loc(breaks , out $ bin )
8791 out $ x <- locs $ mid
0 commit comments