Revision aee422d7cd4098dad89e31ecc6dfd9e539d2bda4 authored by Dominique Makowski on 06 August 2019, 10:20:02 UTC, committed by cran-robot on 06 August 2019, 10:20:02 UTC
1 parent 23ea322
update.bayesfactor_models.R
#' Update bayesfactor_models
#'
#' @param object A \code{\link{bayesfactor_models}} object.
#' @param subset Vector of model indices to keep or remove.
#' @param reference Index of model to rereference to, or \code{"top"} to reference to the best model, or \code{"bottom"} to reference to the worst model.
#' @param ... Currently not used.
#'
#' @examples
#' library(lme4)
#' lmer1 <- lmer(Sepal.Length ~ Petal.Length + (1 | Species), data = iris)
#' lmer2 <- lmer(Sepal.Length ~ Petal.Length + (Petal.Length | Species), data = iris)
#' lmer3 <- lmer(
#' Sepal.Length ~ Petal.Length + (Petal.Length | Species) + (1 | Petal.Width),
#' data = iris
#' )
#'
#' m <- bayesfactor_models(lmer1, lmer2, lmer3, denominator = 1)
#' m
#'
#' update(m, reference = "bottom")
#' @export
update.bayesfactor_models <- function(object, subset = NULL, reference = NULL, ...) {
if (!is.null(reference)) {
if (reference == "top") {
reference <- which.max(object$BF)
} else if (reference == "bottom") {
reference <- which.min(object$BF)
}
object$BF <- object$BF / object$BF[reference]
attr(object, "denominator") <- reference
}
denominator <- attr(object, "denominator")
if (!is.null(subset)) {
object_subset <- object[subset, ]
if (denominator %in% subset) {
attr(object_subset, "denominator") <- which(denominator == subset)
} else {
object_subset <- rbind(object[denominator, ], object_subset)
attr(object_subset, "denominator") <- 1
}
object <- object_subset
}
object
}
Computing file changes ...