R/quants.h.R

Defines functions quants

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

quantsOptions <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
    "quantsOptions",
    inherit = jmvcore::Options,
    public = list(
        initialize = function(
            distr = "normdist",
            quant = 0.975,
            N = 100,
            grp = 1,
            numRows = 2,
            numCols = 2, ...) {

            super$initialize(
                package="Quantiles",
                name="quants",
                requiresData=FALSE,
                ...)

            private$..distr <- jmvcore::OptionList$new(
                "distr",
                distr,
                default="normdist",
                options=list(
                    "normdist",
                    "tdist",
                    "chidist",
                    "fdist"))
            private$..quant <- jmvcore::OptionNumber$new(
                "quant",
                quant,
                default=0.975,
                min=0.0001,
                max=0.9999)
            private$..N <- jmvcore::OptionNumber$new(
                "N",
                N,
                default=100,
                min=2)
            private$..grp <- jmvcore::OptionNumber$new(
                "grp",
                grp,
                default=1)
            private$..numRows <- jmvcore::OptionNumber$new(
                "numRows",
                numRows,
                default=2)
            private$..numCols <- jmvcore::OptionNumber$new(
                "numCols",
                numCols,
                default=2)

            self$.addOption(private$..distr)
            self$.addOption(private$..quant)
            self$.addOption(private$..N)
            self$.addOption(private$..grp)
            self$.addOption(private$..numRows)
            self$.addOption(private$..numCols)
        }),
    active = list(
        distr = function() private$..distr$value,
        quant = function() private$..quant$value,
        N = function() private$..N$value,
        grp = function() private$..grp$value,
        numRows = function() private$..numRows$value,
        numCols = function() private$..numCols$value),
    private = list(
        ..distr = NA,
        ..quant = NA,
        ..N = NA,
        ..grp = NA,
        ..numRows = NA,
        ..numCols = NA)
)

quantsResults <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
    "quantsResults",
    inherit = jmvcore::Group,
    active = list(
        text = function() private$.items[["text"]],
        plot = function() private$.items[["plot"]]),
    private = list(),
    public=list(
        initialize=function(options) {
            super$initialize(
                options=options,
                name="",
                title="Find Quantile")
            self$add(jmvcore::Preformatted$new(
                options=options,
                name="text",
                title="Quantile"))
            self$add(jmvcore::Image$new(
                options=options,
                name="plot",
                title="Distribution plot",
                width=400,
                height=300,
                renderFun=".plot"))}))

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

#' Find Quantiles
#'
#' 
#' @param distr .
#' @param quant .
#' @param N .
#' @param grp .
#' @param numRows .
#' @param numCols .
#' @return A results object containing:
#' \tabular{llllll}{
#'   \code{results$text} \tab \tab \tab \tab \tab a preformatted \cr
#'   \code{results$plot} \tab \tab \tab \tab \tab an image \cr
#' }
#'
#' @export
quants <- function(
    distr = "normdist",
    quant = 0.975,
    N = 100,
    grp = 1,
    numRows = 2,
    numCols = 2) {

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


    options <- quantsOptions$new(
        distr = distr,
        quant = quant,
        N = N,
        grp = grp,
        numRows = numRows,
        numCols = numCols)

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

    analysis$run()

    analysis$results
}
drgmulder/Quantiles documentation built on Dec. 20, 2021, 1:15 a.m.