NEWS.md
    exclude option to subset_draws(), which can be used to exclude the matched selection.are_log_weights option to pareto_smooth(), which is necessary for correct Pareto smoothing computation if the input vector consists of log weights.pareto_smooth option to weight_draws(), to Pareto smooth weights before adding to a draws object.pareto_khat(), pareto_khat_threshold(), pareto_min_ss(), pareto_convergence_rate())thin_draws() now automatically thins draws based on ESS by default, and non-integer thinning is possible.rvars can now be done with the base matrix multiplication operator (%*%) instead of %**% in R >= 4.3.variables(), variables<-(), set_variables(), and nvariables() now support a with_indices argument, which determines whether variable names are retrieved/set with ("x[1]", "x[2]" …) or without ("x") indices (#208).extract_variable_array() function to extract variables with indices into arrays of iterations x chains x any remaining dimensions (#340).factor variables (draws_df, draws_list, and draws_rvars), extract_variable() and extract_variable_matrix() can now return factors.rhat_nested (#256)rvars using rvars (#282):
x[i] or x[i] <- y where i is a scalar logical rvar slices (or updates) x by its draws. Thus, if y <- x[i], then y is the same shape as x but with sum(i) draws.x[[i]] or x[[i]] <- y where i is a scalar numeric rvar slices (or updates) x by selecting the ith element within each corresponding draw. Thus, if y <- x[[i]], then y is an rvar of length 1.rvar_ifelse(), which is a variant of ifelse() that accepts (and returns) rvars (#282).rvars has been made faster.rfun() works with primitive functions (#290) and dots arguments (#291).vctrs::vec_proxy_equal(), vctrs::vec_proxy_compare(), and vctrs::vec_proxy_order().cbind(<rvar>), rbind(<rvar>), and chol(<rvar>) for R 4.4 (#304).bind_draws(<draws_rvars>) regenerates draw ids when binding along chains or draws; this also fixes a bug in split_chains(<draws_rvars>) (#300).tibble::num() formatting to output from summarise_draws() until print() is called so that summary output can be easily converted to a vanilla data frame (#275).rvar_factor() and rvar_ordered() subtypes of rvar() that work analogously to factor() and ordered() (#149). See the new section on rvar_factors in vignette("rvar").draws_df(), draws_list(), and draws_rvars() formats now support discrete variables stored as factors / ordereds (or rvar_factors / rvar_ordereds). If converted to formats that do not support discrete variables with named levels (draws_matrix() and draws_array()), factor-like variables are converted to numerics.match() and %in% generic and added support for rvars to both functions.modal_category(), entropy(), and dissent() functions for summarizing discrete draws.bind_draws() (#253).summarise_draws output via tibble::num.print.rvar() and format.rvar() now default to a smaller number of significant digits in more cases, including when printing in data frames. This is controlled by the new "posterior.digits" option (see help("posterior-package")).vec_proxy.rvar() and vec_restore.rvar(), improving performance of rvars in tibbles (and elsewhere vctrs is used).as_draws_rvars() preserves dimensions of length-1 arrays (#265).rvar, vctrs, dplyr, and ggplot2 (#267, #269).for_each_draw(x, expr), which executes expr once for each draw of x, exposing variables in x as arrays of the shape implied by the indices in their names (#224).subset_draws(), thin_draws(), and resample_draws() for rvars (#225).weights to be optional in resample_draws() (#225).drop() for rvars.draws_list objects. (#229, #250)diag() for rvars (#246).as_draws_rvars(), including nested use of [, like x[y[1],2] (#243).rvars with ndraws() > 1 (#242).rvars can be cast to draws formats (#242).rvars with more than 1 dimension as scalars when casting to other formats (#248).mcse_sd function to not make a normality assumption. (#232)draws_list objects.NULL in mutate_variables. (#222)rvar and distributional::dist_sample (#109)bind_draws.draws_df when binding more than two objects thanks to Jouni Helske (#204)pillar::glimpse() when used on a data frame containing rvars (#210)"draws" and "draws_df" classes from draws_df objects if meta data columns are removed by a dplyr operation (#202)print.draws_df() on objects with unrepaired draws (#217)variance() works properly with summarise_draws() (#219)as_draws_rvars() works on lists of lists (#192)rvar_rng (#195)subset_draws() respects input variable order, thanks to Karl Dunkle Werner and Alexey Stukalov (#188)ess_tail. (#198)rvars being unnecessarily slow (#179)