R/flexplota.h.R

Defines functions flexplota

Documented in flexplota

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

flexplotaOptions <- if (requireNamespace('jmvcore')) R6::R6Class(
    "flexplotaOptions",
    inherit = jmvcore::Options,
    public = list(
        initialize = function(
            out = NULL,
            preds = NULL,
            given = NULL,
            se = TRUE,
            line = "Loess",
            ghost = TRUE,
            diff = FALSE,
            plmethod = "Jittered-density plot",
            resid = FALSE,
            suppr = FALSE,
            center = "Median + quartiles",
            alpha = 50,
            sample = 100,
            jittx = 0.2,
            jitty = 0,
            bins = 3, ...) {

            super$initialize(
                package='flexplot',
                name='flexplota',
                requiresData=TRUE,
                ...)

            private$..out <- jmvcore::OptionVariable$new(
                "out",
                out)
            private$..preds <- jmvcore::OptionVariables$new(
                "preds",
                preds)
            private$..given <- jmvcore::OptionVariables$new(
                "given",
                given)
            private$..se <- jmvcore::OptionBool$new(
                "se",
                se,
                default=TRUE)
            private$..line <- jmvcore::OptionList$new(
                "line",
                line,
                options=list(
                    "Loess",
                    "Regression",
                    "Logistic",
                    "Polynomial",
                    "Cubic",
                    "Time Series"),
                default="Loess")
            private$..ghost <- jmvcore::OptionBool$new(
                "ghost",
                ghost,
                default=TRUE)
            private$..diff <- jmvcore::OptionBool$new(
                "diff",
                diff,
                default=FALSE)
            private$..plmethod <- jmvcore::OptionList$new(
                "plmethod",
                plmethod,
                options=list(
                    "Jittered-density plot",
                    "Boxplot",
                    "Violin plot"),
                default="Jittered-density plot")
            private$..resid <- jmvcore::OptionBool$new(
                "resid",
                resid,
                default=FALSE)
            private$..suppr <- jmvcore::OptionBool$new(
                "suppr",
                suppr,
                default=FALSE)
            private$..center <- jmvcore::OptionList$new(
                "center",
                center,
                options=list(
                    "Median + quartiles",
                    "Mean + sterr",
                    "Mean + stdev"),
                default="Median + quartiles")
            private$..alpha <- jmvcore::OptionNumber$new(
                "alpha",
                alpha,
                min=0,
                max=100,
                default=50)
            private$..sample <- jmvcore::OptionNumber$new(
                "sample",
                sample,
                min=0,
                max=100,
                default=100)
            private$..jittx <- jmvcore::OptionNumber$new(
                "jittx",
                jittx,
                min=0,
                max=0.5,
                default=0.2)
            private$..jitty <- jmvcore::OptionNumber$new(
                "jitty",
                jitty,
                min=0,
                max=0.5,
                default=0)
            private$..bins <- jmvcore::OptionNumber$new(
                "bins",
                bins,
                min=2,
                max=6,
                default=3)

            self$.addOption(private$..out)
            self$.addOption(private$..preds)
            self$.addOption(private$..given)
            self$.addOption(private$..se)
            self$.addOption(private$..line)
            self$.addOption(private$..ghost)
            self$.addOption(private$..diff)
            self$.addOption(private$..plmethod)
            self$.addOption(private$..resid)
            self$.addOption(private$..suppr)
            self$.addOption(private$..center)
            self$.addOption(private$..alpha)
            self$.addOption(private$..sample)
            self$.addOption(private$..jittx)
            self$.addOption(private$..jitty)
            self$.addOption(private$..bins)
        }),
    active = list(
        out = function() private$..out$value,
        preds = function() private$..preds$value,
        given = function() private$..given$value,
        se = function() private$..se$value,
        line = function() private$..line$value,
        ghost = function() private$..ghost$value,
        diff = function() private$..diff$value,
        plmethod = function() private$..plmethod$value,
        resid = function() private$..resid$value,
        suppr = function() private$..suppr$value,
        center = function() private$..center$value,
        alpha = function() private$..alpha$value,
        sample = function() private$..sample$value,
        jittx = function() private$..jittx$value,
        jitty = function() private$..jitty$value,
        bins = function() private$..bins$value),
    private = list(
        ..out = NA,
        ..preds = NA,
        ..given = NA,
        ..se = NA,
        ..line = NA,
        ..ghost = NA,
        ..diff = NA,
        ..plmethod = NA,
        ..resid = NA,
        ..suppr = NA,
        ..center = NA,
        ..alpha = NA,
        ..sample = NA,
        ..jittx = NA,
        ..jitty = NA,
        ..bins = NA)
)

flexplotaResults <- if (requireNamespace('jmvcore')) R6::R6Class(
    inherit = jmvcore::Group,
    active = list(
        plot = function() private$.items[["plot"]]),
    private = list(),
    public=list(
        initialize=function(options) {
            super$initialize(
                options=options,
                name="",
                title="Flexplot")
            self$add(jmvcore::Image$new(
                options=options,
                name="plot",
                title="Analysis Plot",
                width=600,
                height=400,
                renderFun=".plot"))}))

flexplotaBase <- if (requireNamespace('jmvcore')) R6::R6Class(
    "flexplotaBase",
    inherit = jmvcore::Analysis,
    public = list(
        initialize = function(options, data=NULL, datasetId="", analysisId="", revision=0) {
            super$initialize(
                package = 'flexplot',
                name = 'flexplota',
                version = c(1,0,0),
                options = options,
                results = flexplotaResults$new(options=options),
                data = data,
                datasetId = datasetId,
                analysisId = analysisId,
                revision = revision,
                pause = NULL,
                completeWhenFilled = FALSE,
                requiresMissings = FALSE)
        }))

#' Flexplot
#'
#' 
#' @param data .
#' @param out .
#' @param preds .
#' @param given .
#' @param se .
#' @param line .
#' @param ghost .
#' @param diff .
#' @param plmethod .
#' @param resid .
#' @param suppr .
#' @param center .
#' @param alpha .
#' @param sample .
#' @param jittx .
#' @param jitty .
#' @param bins .
#' @return A results object containing:
#' \tabular{llllll}{
#'   \code{results$plot} \tab \tab \tab \tab \tab an image \cr
#' }
#'
#' @export
flexplota <- function(
    data,
    out,
    preds,
    given,
    se = TRUE,
    line = "Loess",
    ghost = TRUE,
    diff = FALSE,
    plmethod = "Jittered-density plot",
    resid = FALSE,
    suppr = FALSE,
    center = "Median + quartiles",
    alpha = 50,
    sample = 100,
    jittx = 0.2,
    jitty = 0,
    bins = 3) {

    if ( ! requireNamespace('jmvcore'))
        stop('flexplota requires jmvcore to be installed (restart may be required)')

    if ( ! missing(out)) out <- jmvcore::resolveQuo(jmvcore::enquo(out))
    if ( ! missing(preds)) preds <- jmvcore::resolveQuo(jmvcore::enquo(preds))
    if ( ! missing(given)) given <- jmvcore::resolveQuo(jmvcore::enquo(given))
    if (missing(data))
        data <- jmvcore::marshalData(
            parent.frame(),
            `if`( ! missing(out), out, NULL),
            `if`( ! missing(preds), preds, NULL),
            `if`( ! missing(given), given, NULL))


    options <- flexplotaOptions$new(
        out = out,
        preds = preds,
        given = given,
        se = se,
        line = line,
        ghost = ghost,
        diff = diff,
        plmethod = plmethod,
        resid = resid,
        suppr = suppr,
        center = center,
        alpha = alpha,
        sample = sample,
        jittx = jittx,
        jitty = jitty,
        bins = bins)

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

    analysis$run()

    analysis$results
}
dustinfife/flexplot documentation built on Sept. 23, 2024, 9:01 p.m.