R/ztest.h.R

Defines functions ztest

# This file is automatically generated, you probably don't want to edit this

ztestOptions <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
    "ztestOptions",
    inherit = jmvcore::Options,
    public = list(
        initialize = function(
            samplemean = 55,
            populationmean = 50,
            populationsd = 10,
            n = 30,
            alpha = 0.05,
            alt = "notEqual", ...) {

            super$initialize(
                package="ztestvis",
                name="ztest",
                requiresData=FALSE,
                ...)

            private$..samplemean <- jmvcore::OptionNumber$new(
                "samplemean",
                samplemean,
                default=55)
            private$..populationmean <- jmvcore::OptionNumber$new(
                "populationmean",
                populationmean,
                default=50)
            private$..populationsd <- jmvcore::OptionNumber$new(
                "populationsd",
                populationsd,
                default=10)
            private$..n <- jmvcore::OptionInteger$new(
                "n",
                n,
                default=30,
                min=1)
            private$..alpha <- jmvcore::OptionNumber$new(
                "alpha",
                alpha,
                default=0.05,
                min=0,
                max=1)
            private$..alt <- jmvcore::OptionList$new(
                "alt",
                alt,
                options=list(
                    "notEqual",
                    "greaterthan",
                    "lessthan"),
                default="notEqual")

            self$.addOption(private$..samplemean)
            self$.addOption(private$..populationmean)
            self$.addOption(private$..populationsd)
            self$.addOption(private$..n)
            self$.addOption(private$..alpha)
            self$.addOption(private$..alt)
        }),
    active = list(
        samplemean = function() private$..samplemean$value,
        populationmean = function() private$..populationmean$value,
        populationsd = function() private$..populationsd$value,
        n = function() private$..n$value,
        alpha = function() private$..alpha$value,
        alt = function() private$..alt$value),
    private = list(
        ..samplemean = NA,
        ..populationmean = NA,
        ..populationsd = NA,
        ..n = NA,
        ..alpha = NA,
        ..alt = NA)
)

ztestResults <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
    "ztestResults",
    inherit = jmvcore::Group,
    active = list(
        ztest = function() private$.items[["ztest"]],
        text = function() private$.items[["text"]],
        plot = function() private$.items[["plot"]]),
    private = list(),
    public=list(
        initialize=function(options) {
            super$initialize(
                options=options,
                name="",
                title="One-Sample z-Test")
            self$add(jmvcore::Table$new(
                options=options,
                name="ztest",
                title="One-Sample z-Test",
                rows=1,
                columns=list(
                    list(
                        `name`="z", 
                        `title`="Observed <em>z</em>", 
                        `type`="number"),
                    list(
                        `name`="se", 
                        `title`="Standard Error", 
                        `type`="number"),
                    list(
                        `name`="p", 
                        `title`="<em>p</em>", 
                        `type`="number", 
                        `format`="zto,pvalue"),
                    list(
                        `name`="cohend", 
                        `title`="Effect Size", 
                        `type`="number"))))
            self$add(jmvcore::Html$new(
                options=options,
                name="text",
                title="Decision"))
            self$add(jmvcore::Image$new(
                options=options,
                name="plot",
                title="z-test Plot",
                width=600,
                height=400,
                renderFun=".plot"))}))

ztestBase <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
    "ztestBase",
    inherit = jmvcore::Analysis,
    public = list(
        initialize = function(options, data=NULL, datasetId="", analysisId="", revision=0) {
            super$initialize(
                package = "ztestvis",
                name = "ztest",
                version = c(1,1,0),
                options = options,
                results = ztestResults$new(options=options),
                data = data,
                datasetId = datasetId,
                analysisId = analysisId,
                revision = revision,
                pause = NULL,
                completeWhenFilled = FALSE,
                requiresMissings = FALSE)
        }))

#' One-Sample z-Test
#'
#' 
#' @param samplemean .
#' @param populationmean .
#' @param populationsd .
#' @param n .
#' @param alpha .
#' @param alt .
#' @return A results object containing:
#' \tabular{llllll}{
#'   \code{results$ztest} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$text} \tab \tab \tab \tab \tab a html \cr
#'   \code{results$plot} \tab \tab \tab \tab \tab an image \cr
#' }
#'
#' Tables can be converted to data frames with \code{asDF} or \code{\link{as.data.frame}}. For example:
#'
#' \code{results$ztest$asDF}
#'
#' \code{as.data.frame(results$ztest)}
#'
#' @export
ztest <- function(
    samplemean = 55,
    populationmean = 50,
    populationsd = 10,
    n = 30,
    alpha = 0.05,
    alt = "notEqual") {

    if ( ! requireNamespace("jmvcore", quietly=TRUE))
        stop("ztest requires jmvcore to be installed (restart may be required)")


    options <- ztestOptions$new(
        samplemean = samplemean,
        populationmean = populationmean,
        populationsd = populationsd,
        n = n,
        alpha = alpha,
        alt = alt)

    analysis <- ztestClass$new(
        options = options,
        data = data)

    analysis$run()

    analysis$results
}
wjschne/ztest documentation built on Dec. 23, 2021, 5:16 p.m.