@@ -608,64 +608,6 @@ mcmc_intervals_data <- function(x,
608608 compute_intervals(data_long , prob , prob_outer , point_est , rhat )
609609}
610610
611- # Internal helper shared by mcmc_intervals_data() and mcmc_areas_data()
612- compute_intervals <- function (data_long , prob , prob_outer ,
613- point_est = c(" median" , " mean" , " none" ),
614- rhat = numeric ()) {
615-
616- probs <- c(0.5 - prob_outer / 2 ,
617- 0.5 - prob / 2 ,
618- 0.5 + prob / 2 ,
619- 0.5 + prob_outer / 2 )
620-
621- point_est <- match.arg(point_est )
622- m_func <- if (point_est == " mean" ) mean else median
623-
624- data <- data_long %> %
625- group_by(.data $ parameter ) %> %
626- summarise(
627- outer_width = prob_outer ,
628- inner_width = prob ,
629- point_est = point_est ,
630- ll = unname(quantile(.data $ value , probs [1 ])),
631- l = unname(quantile(.data $ value , probs [2 ])),
632- m = m_func(.data $ value ),
633- h = unname(quantile(.data $ value , probs [3 ])),
634- hh = unname(quantile(.data $ value , probs [4 ]))
635- )
636-
637- if (point_est == " none" ) {
638- data $ m <- NULL
639- }
640-
641- color_by_rhat <- isTRUE(length(rhat ) > 0 )
642-
643- if (color_by_rhat ) {
644- rhat <- drop_NAs_and_warn(new_rhat(rhat ))
645-
646- if (length(rhat ) != nrow(data )) {
647- abort(paste(
648- " 'rhat' has length" , length(rhat ),
649- " but 'x' has" , nrow(data ), " parameters."
650- ))
651- }
652-
653- rhat <- set_names(rhat , data $ parameter )
654-
655- rhat_tbl <- rhat %> %
656- mcmc_rhat_data() %> %
657- select(all_of(" parameter" ),
658- rhat_value = " value" ,
659- rhat_rating = " rating" ,
660- rhat_description = " description" ) %> %
661- mutate(parameter = factor (.data $ parameter , levels(data $ parameter )))
662-
663- data <- dplyr :: inner_join(data , rhat_tbl , by = " parameter" )
664- }
665-
666- data
667- }
668-
669611
670612# Don't import `filter`: otherwise, you get a warning when using
671613# `devtools::load_all(".")` because stats also has a `filter` function
@@ -908,3 +850,61 @@ check_interval_widths <- function(prob, prob_outer) {
908850 }
909851 sort(c(prob , prob_outer ))
910852}
853+
854+ # Internal helper shared by mcmc_intervals_data() and mcmc_areas_data()
855+ compute_intervals <- function (data_long , prob , prob_outer ,
856+ point_est = c(" median" , " mean" , " none" ),
857+ rhat = numeric ()) {
858+
859+ probs <- c(0.5 - prob_outer / 2 ,
860+ 0.5 - prob / 2 ,
861+ 0.5 + prob / 2 ,
862+ 0.5 + prob_outer / 2 )
863+
864+ point_est <- match.arg(point_est )
865+ m_func <- if (point_est == " mean" ) mean else median
866+
867+ data <- data_long %> %
868+ group_by(.data $ parameter ) %> %
869+ summarise(
870+ outer_width = prob_outer ,
871+ inner_width = prob ,
872+ point_est = point_est ,
873+ ll = unname(quantile(.data $ value , probs [1 ])),
874+ l = unname(quantile(.data $ value , probs [2 ])),
875+ m = m_func(.data $ value ),
876+ h = unname(quantile(.data $ value , probs [3 ])),
877+ hh = unname(quantile(.data $ value , probs [4 ]))
878+ )
879+
880+ if (point_est == " none" ) {
881+ data $ m <- NULL
882+ }
883+
884+ color_by_rhat <- isTRUE(length(rhat ) > 0 )
885+
886+ if (color_by_rhat ) {
887+ rhat <- drop_NAs_and_warn(new_rhat(rhat ))
888+
889+ if (length(rhat ) != nrow(data )) {
890+ abort(paste(
891+ " 'rhat' has length" , length(rhat ),
892+ " but 'x' has" , nrow(data ), " parameters."
893+ ))
894+ }
895+
896+ rhat <- set_names(rhat , data $ parameter )
897+
898+ rhat_tbl <- rhat %> %
899+ mcmc_rhat_data() %> %
900+ select(all_of(" parameter" ),
901+ rhat_value = " value" ,
902+ rhat_rating = " rating" ,
903+ rhat_description = " description" ) %> %
904+ mutate(parameter = factor (.data $ parameter , levels(data $ parameter )))
905+
906+ data <- dplyr :: inner_join(data , rhat_tbl , by = " parameter" )
907+ }
908+
909+ data
910+ }
0 commit comments