#' Sort parameters by coefficient values
#'
#' @param x A data frame or a `parameters_model` object.
#' @param ... Arguments passed to or from other methods.
#'
#' @examples
#' # creating object to sort (can also be a regular data frame)
#' mod <- model_parameters(stats::lm(wt ~ am * cyl, data = mtcars))
#'
#' # original output
#' mod
#'
#' # sorted outputs
#' sort_parameters(mod, sort = "ascending")
#' sort_parameters(mod, sort = "descending")
#'
#' @return A sorted data frame or original object.
#'
#' @export
sort_parameters <- function(x, ...) {
UseMethod("sort_parameters")
}
#' @rdname sort_parameters
#'
#' @param sort If `"none"` (default) do not sort, `"ascending"` sort by
#' increasing coefficient value, or `"descending"` sort by decreasing
#' coefficient value.
#' @param column The column containing model parameter estimates. This will be
#' `"Coefficient"` (default) in *easystats* packages, `"estimate"` in *broom*
#' package, etc.
#'
#' @export
sort_parameters.default <- function(x, sort = "none", column = "Coefficient", ...) {
sort <- match.arg(tolower(sort), choices = c("none", "ascending", "descending"))
if (sort == "none") {
return(x)
}
# new row indices to use for sorting
new_row_order <- switch(sort,
ascending = order(x[[column]], decreasing = FALSE),
descending = order(x[[column]], decreasing = TRUE)
)
x[new_row_order, ]
}
#' @export
sort_parameters.data.frame <- sort_parameters.default
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.