Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
61 lines (52 sloc) 1.68 KB
#' @importFrom rlang !!!
#' @title Cochran Q Test
#' @description Test if the proportions of 3 or more dichotomous variables are
#' equal in the same population.
#' @param data a \code{data.frame} or \code{tibble}
#' @param ... columns in \code{data}
#' @return \code{infer_cochran_qtest} returns an object of class
#' \code{"infer_cochran_qtest"}. An object of class \code{"infer_cochran_qtest"}
#' is a list containing the following components:
#'
#' \item{n}{number of observations}
#' \item{df}{degrees of freedom}
#' \item{q}{cochran's q statistic}
#' \item{pvalue}{p-value}
#' @section Deprecated Function:
#' \code{cochran_test()} has been deprecated. Instead use
#' \code{infer_cochran_qtest()}.
#' @references Sheskin, D. J. 2007. Handbook of Parametric and Nonparametric
#' Statistical Procedures, 4th edition. : Chapman & Hall/CRC.
#'
#' @examples
#' infer_cochran_qtest(exam, exam1, exam2, exam3)
#' @export
#'
infer_cochran_qtest <- function(data, ...) UseMethod("infer_cochran_qtest")
#' @export
infer_cochran_qtest.default <- function(data, ...) {
vars <- rlang::quos(...)
fdata <- dplyr::select(data, !!! vars)
if (ncol(fdata) < 3) {
stop("Please specify at least 3 variables.")
}
if (any(sapply(lapply(fdata, as.factor), nlevels) > 2)) {
stop("Please specify dichotomous/binary variables only.")
}
k <- cochran_comp(fdata)
result <- list(n = k$n, df = k$df, q = k$q, pvalue = k$pvalue)
class(result) <- "infer_cochran_qtest"
return(result)
}
#' @export
#' @rdname infer_cochran_qtest
#' @usage NULL
#'
cochran_test <- function(x, ...) {
.Deprecated("infer_cochran_qtest()")
}
#' @export
#'
print.infer_cochran_qtest <- function(x, ...) {
print_cochran_test(x)
}