https://github.com/cran/bayestestR
Tip revision: 3da49db3cf0eea4d2c5eba241ddb5470cd7dd929 authored by Dominique Makowski on 26 January 2021, 16:40:03 UTC
version 0.8.2
version 0.8.2
Tip revision: 3da49db
print.bayesfactor_models.R
#' @importFrom insight print_color
#' @importFrom tools toTitleCase
#' @export
print.bayesfactor_models <- function(x, digits = 3, log = FALSE, ...) {
BFE <- x
denominator <- attr(BFE, "denominator")
grid.type <- attr(BFE, "BF_method")
BFE <- as.data.frame(BFE)
if (log) {
BFE$BF <- log(BFE$BF)
}
BFE$BF <- insight::format_value(BFE$BF, digits = digits, missing = "NA", zap_small = log)
BFE$Model[BFE$Model == "1"] <- "(Intercept only)" # indicate null-model
BFE$Model <- paste0(" [", seq_len(nrow(BFE)), "] ", BFE$Model)
# Denominator
if(is.numeric(denominator)) {
denM <- .trim(BFE$Model[denominator])
BFE <- BFE[-denominator, ]
} else{
denM <- tools::toTitleCase(denominator)
}
# footer
footer <- list(
"\n* Against Denominator: ",
c(denM, "cyan"),
"\n* Bayes Factor Type: ",
c(grid.type, "cyan"),
if (log) c("\n\nBayes Factors are on the log-scale.", "red")
)
cat(insight::export_table(
BFE,
sep = " ", header = NULL, align = c("left", "right"),
caption = c("# Bayes Factors for Model Comparison", "blue"),
footer = footer)
)
invisible(x)
}
#' @importFrom insight print_color export_table
#' @export
print.bayesfactor_models_matrix <- function(x, digits = 2, log = FALSE, ...) {
orig_x <- x
# Format values
df <- as.data.frame(x)
if (log) {
df <- log(df)
}
df[] <- insight::format_value(df[], digits = digits, zap_small = log)
diag(df) <- if (log) "0" else "1"
# Model names
models <- colnames(df)
models[models == "1"] <- "(Intercept only)"
models <- paste0("[", seq_along(models), "] ", models)
k <- max(sapply(c(models, "Denominator"), nchar)) + 2
rownames(df) <- colnames(df) <- NULL
df <- cbind(Model = models, df)
colnames(df) <- c("placeholder", paste0(" [", seq_along(models), "] "))
out <- insight::export_table(
df,
caption = c("# Bayes Factors for Model Comparison", "blue"),
subtitle = c(sprintf("\n\n%sNumerator\nDenominator", paste(rep(" ", k), collapse = "")), "cyan"),
footer = if (log) c("\nBayes Factors are on the log-scale.\n", "red")
)
out <- sub("placeholder", "\b\b", out)
cat(out)
invisible(orig_x)
}