R/generics.R

Defines functions private_summary_regression summary.RFModel summary.LogisticModel summary.LinearModel summary.CoxModel print.RFModel print.LogisticModel print.LinearModel print.CoxModel predict.RFModel predict.LogisticModel predict.LinearModel predict.CoxModel

Documented in predict.CoxModel predict.LinearModel predict.LogisticModel predict.RFModel print.CoxModel print.LinearModel print.LogisticModel print.RFModel summary.CoxModel summary.LinearModel summary.LogisticModel summary.RFModel

# S3 methods for R6 model classes ----------------------------------------------
# These provide the standard R interface: predict(model, newdata, k = 5)

#' Predict method for CoxModel
#'
#' @param object A \code{CoxModel} R6 object
#' @param newdata Query data of class data.frame
#' @param k Number of similar cases to return
#' @param ... Additional arguments (currently unused)
#' @return A data.frame of similar cases
#' @export
predict.CoxModel <- function(object, newdata, k = 1, ...) {
  object$get_similar_cases(query = newdata, k = k, ...)
}

#' Predict method for LinearModel
#'
#' @param object A \code{LinearModel} R6 object
#' @param newdata Query data of class data.frame
#' @param k Number of similar cases to return
#' @param ... Additional arguments (currently unused)
#' @return A data.frame of similar cases
#' @export
predict.LinearModel <- function(object, newdata, k = 1, ...) {
  object$get_similar_cases(query = newdata, k = k, ...)
}

#' Predict method for LogisticModel
#'
#' @param object A \code{LogisticModel} R6 object
#' @param newdata Query data of class data.frame
#' @param k Number of similar cases to return
#' @param ... Additional arguments (currently unused)
#' @return A data.frame of similar cases
#' @export
predict.LogisticModel <- function(object, newdata, k = 1, ...) {
  object$get_similar_cases(query = newdata, k = k, ...)
}

#' Predict method for RFModel
#'
#' @param object An \code{RFModel} R6 object
#' @param newdata Query data of class data.frame
#' @param k Number of similar cases to return
#' @param ... Additional arguments (currently unused)
#' @return A data.frame of similar cases
#' @export
predict.RFModel <- function(object, newdata, k = 1, ...) {
  object$get_similar_cases(query = newdata, k = k, ...)
}

#' Print method for CoxModel
#' @param x A \code{CoxModel} R6 object
#' @param ... Additional arguments (currently unused)
#' @export
print.CoxModel <- function(x, ...) x$print()

#' Print method for LinearModel
#' @param x A \code{LinearModel} R6 object
#' @param ... Additional arguments (currently unused)
#' @export
print.LinearModel <- function(x, ...) x$print()

#' Print method for LogisticModel
#' @param x A \code{LogisticModel} R6 object
#' @param ... Additional arguments (currently unused)
#' @export
print.LogisticModel <- function(x, ...) x$print()

#' Print method for RFModel
#' @param x An \code{RFModel} R6 object
#' @param ... Additional arguments (currently unused)
#' @export
print.RFModel <- function(x, ...) x$print()

#' Summary method for CoxModel
#' @param object A \code{CoxModel} R6 object
#' @param ... Additional arguments (currently unused)
#' @export
summary.CoxModel <- function(object, ...) {
  private_summary_regression(object, "CoxModel (cph)")
}

#' Summary method for LinearModel
#' @param object A \code{LinearModel} R6 object
#' @param ... Additional arguments (currently unused)
#' @export
summary.LinearModel <- function(object, ...) {
  private_summary_regression(object, "LinearModel (ols)")
}

#' Summary method for LogisticModel
#' @param object A \code{LogisticModel} R6 object
#' @param ... Additional arguments (currently unused)
#' @export
summary.LogisticModel <- function(object, ...) {
  private_summary_regression(object, "LogisticModel (lrm)")
}

#' Summary method for RFModel
#' @param object An \code{RFModel} R6 object
#' @param ... Additional arguments (currently unused)
#' @export
summary.RFModel <- function(object, ...) {
  cat("CaseBasedReasoning Model Summary\n")
  cat("================================\n")
  cat("Type          : RFModel (ranger)\n")
  cat("Endpoint      : ", paste(object$endpoint, collapse = ", "), "\n")
  cat("Variables     : ", paste(object$terms, collapse = ", "), "\n")
  cat("Distance      : ", object$dist_method, "\n")
  cat("Trained       : ", !is.null(object$model_fit), "\n")
  if (!is.null(object$model_fit)) {
    cat("Num. trees    : ", object$model_fit$num.trees, "\n")
  }
  cat("Training data : ", nrow(object$data), " x ", ncol(object$data), "\n")
  invisible(object)
}

#' @noRd
private_summary_regression <- function(object, type_label) {
  cat("CaseBasedReasoning Model Summary\n")
  cat("================================\n")
  cat("Type          : ", type_label, "\n")
  cat("Endpoint      : ", paste(object$endpoint, collapse = ", "), "\n")
  cat("Variables     : ", paste(object$terms, collapse = ", "), "\n")
  cat("Trained       : ", !is.null(object$weights), "\n")
  if (!is.null(object$weights)) {
    cat("Coefficients  : ", length(unlist(object$weights)), "\n")
  }
  cat("Training data : ", nrow(object$data), " x ", ncol(object$data), "\n")
  invisible(object)
}

Try the CaseBasedReasoning package in your browser

Any scripts or data that you put into this service are public.

CaseBasedReasoning documentation built on Feb. 27, 2026, 9:06 a.m.