R/polytomous.h.R

Defines functions polytomous

Documented in polytomous

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

polytomousOptions <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
    "polytomousOptions",
    inherit = jmvcore::Options,
    public = list(
        initialize = function(
            vars = NULL,
            imeasure = TRUE,
            ise = TRUE,
            infit = FALSE,
            outfit = FALSE,
            reliability = TRUE,
            modelfit = FALSE,
            modelfitp = FALSE,
            mat = FALSE,
            thresh = TRUE,
            pmeasure = FALSE,
            thurs = FALSE,
            wplot = TRUE,
            inplot = FALSE,
            outplot = FALSE,
            angle = 0,
            tau = FALSE,
            model = FALSE,
            lr = FALSE,
            piplot = TRUE,
            to = FALSE,
            st = FALSE,
            plot2 = FALSE,
            plot3 = FALSE,
            width = 500,
            height = 500,
            width5 = 500,
            height5 = 500,
            num = 1,
            plot4 = FALSE,
            width4 = 500,
            height4 = 500,
            num1 = 1,
            plot6 = FALSE,
            width6 = 500,
            height6 = 500,
            width7 = 500,
            height7 = 500,
            width3 = 500,
            height3 = 500,
            width2 = 500,
            height2 = 500, ...) {

            super$initialize(
                package="snowIRT",
                name="polytomous",
                requiresData=TRUE,
                ...)

            private$..vars <- jmvcore::OptionVariables$new(
                "vars",
                vars,
                suggested=list(
                    "continuous"),
                permitted=list(
                    "numeric"))
            private$..imeasure <- jmvcore::OptionBool$new(
                "imeasure",
                imeasure,
                default=TRUE)
            private$..ise <- jmvcore::OptionBool$new(
                "ise",
                ise,
                default=TRUE)
            private$..infit <- jmvcore::OptionBool$new(
                "infit",
                infit,
                default=FALSE)
            private$..outfit <- jmvcore::OptionBool$new(
                "outfit",
                outfit,
                default=FALSE)
            private$..reliability <- jmvcore::OptionBool$new(
                "reliability",
                reliability,
                default=TRUE)
            private$..modelfit <- jmvcore::OptionBool$new(
                "modelfit",
                modelfit,
                default=FALSE)
            private$..modelfitp <- jmvcore::OptionBool$new(
                "modelfitp",
                modelfitp,
                default=FALSE)
            private$..mat <- jmvcore::OptionBool$new(
                "mat",
                mat,
                default=FALSE)
            private$..thresh <- jmvcore::OptionBool$new(
                "thresh",
                thresh,
                default=TRUE)
            private$..pmeasure <- jmvcore::OptionBool$new(
                "pmeasure",
                pmeasure,
                default=FALSE)
            private$..thurs <- jmvcore::OptionBool$new(
                "thurs",
                thurs,
                default=FALSE)
            private$..wplot <- jmvcore::OptionBool$new(
                "wplot",
                wplot,
                default=TRUE)
            private$..total <- jmvcore::OptionOutput$new(
                "total")
            private$..personmeasure <- jmvcore::OptionOutput$new(
                "personmeasure")
            private$..pse <- jmvcore::OptionOutput$new(
                "pse")
            private$..pinfit <- jmvcore::OptionOutput$new(
                "pinfit")
            private$..poutfit <- jmvcore::OptionOutput$new(
                "poutfit")
            private$..inplot <- jmvcore::OptionBool$new(
                "inplot",
                inplot,
                default=FALSE)
            private$..outplot <- jmvcore::OptionBool$new(
                "outplot",
                outplot,
                default=FALSE)
            private$..angle <- jmvcore::OptionNumber$new(
                "angle",
                angle,
                min=0,
                max=90,
                default=0)
            private$..tau <- jmvcore::OptionBool$new(
                "tau",
                tau,
                default=FALSE)
            private$..model <- jmvcore::OptionBool$new(
                "model",
                model,
                default=FALSE)
            private$..lr <- jmvcore::OptionBool$new(
                "lr",
                lr,
                default=FALSE)
            private$..resid <- jmvcore::OptionOutput$new(
                "resid")
            private$..piplot <- jmvcore::OptionBool$new(
                "piplot",
                piplot,
                default=TRUE)
            private$..to <- jmvcore::OptionBool$new(
                "to",
                to,
                default=FALSE)
            private$..st <- jmvcore::OptionBool$new(
                "st",
                st,
                default=FALSE)
            private$..plot2 <- jmvcore::OptionBool$new(
                "plot2",
                plot2,
                default=FALSE)
            private$..plot3 <- jmvcore::OptionBool$new(
                "plot3",
                plot3,
                default=FALSE)
            private$..width <- jmvcore::OptionInteger$new(
                "width",
                width,
                default=500)
            private$..height <- jmvcore::OptionInteger$new(
                "height",
                height,
                default=500)
            private$..width5 <- jmvcore::OptionInteger$new(
                "width5",
                width5,
                default=500)
            private$..height5 <- jmvcore::OptionInteger$new(
                "height5",
                height5,
                default=500)
            private$..num <- jmvcore::OptionInteger$new(
                "num",
                num,
                default=1,
                min=1)
            private$..plot4 <- jmvcore::OptionBool$new(
                "plot4",
                plot4,
                default=FALSE)
            private$..width4 <- jmvcore::OptionInteger$new(
                "width4",
                width4,
                default=500)
            private$..height4 <- jmvcore::OptionInteger$new(
                "height4",
                height4,
                default=500)
            private$..num1 <- jmvcore::OptionInteger$new(
                "num1",
                num1,
                default=1,
                min=1)
            private$..plot6 <- jmvcore::OptionBool$new(
                "plot6",
                plot6,
                default=FALSE)
            private$..width6 <- jmvcore::OptionInteger$new(
                "width6",
                width6,
                default=500)
            private$..height6 <- jmvcore::OptionInteger$new(
                "height6",
                height6,
                default=500)
            private$..width7 <- jmvcore::OptionInteger$new(
                "width7",
                width7,
                default=500)
            private$..height7 <- jmvcore::OptionInteger$new(
                "height7",
                height7,
                default=500)
            private$..width3 <- jmvcore::OptionInteger$new(
                "width3",
                width3,
                default=500)
            private$..height3 <- jmvcore::OptionInteger$new(
                "height3",
                height3,
                default=500)
            private$..width2 <- jmvcore::OptionInteger$new(
                "width2",
                width2,
                default=500)
            private$..height2 <- jmvcore::OptionInteger$new(
                "height2",
                height2,
                default=500)

            self$.addOption(private$..vars)
            self$.addOption(private$..imeasure)
            self$.addOption(private$..ise)
            self$.addOption(private$..infit)
            self$.addOption(private$..outfit)
            self$.addOption(private$..reliability)
            self$.addOption(private$..modelfit)
            self$.addOption(private$..modelfitp)
            self$.addOption(private$..mat)
            self$.addOption(private$..thresh)
            self$.addOption(private$..pmeasure)
            self$.addOption(private$..thurs)
            self$.addOption(private$..wplot)
            self$.addOption(private$..total)
            self$.addOption(private$..personmeasure)
            self$.addOption(private$..pse)
            self$.addOption(private$..pinfit)
            self$.addOption(private$..poutfit)
            self$.addOption(private$..inplot)
            self$.addOption(private$..outplot)
            self$.addOption(private$..angle)
            self$.addOption(private$..tau)
            self$.addOption(private$..model)
            self$.addOption(private$..lr)
            self$.addOption(private$..resid)
            self$.addOption(private$..piplot)
            self$.addOption(private$..to)
            self$.addOption(private$..st)
            self$.addOption(private$..plot2)
            self$.addOption(private$..plot3)
            self$.addOption(private$..width)
            self$.addOption(private$..height)
            self$.addOption(private$..width5)
            self$.addOption(private$..height5)
            self$.addOption(private$..num)
            self$.addOption(private$..plot4)
            self$.addOption(private$..width4)
            self$.addOption(private$..height4)
            self$.addOption(private$..num1)
            self$.addOption(private$..plot6)
            self$.addOption(private$..width6)
            self$.addOption(private$..height6)
            self$.addOption(private$..width7)
            self$.addOption(private$..height7)
            self$.addOption(private$..width3)
            self$.addOption(private$..height3)
            self$.addOption(private$..width2)
            self$.addOption(private$..height2)
        }),
    active = list(
        vars = function() private$..vars$value,
        imeasure = function() private$..imeasure$value,
        ise = function() private$..ise$value,
        infit = function() private$..infit$value,
        outfit = function() private$..outfit$value,
        reliability = function() private$..reliability$value,
        modelfit = function() private$..modelfit$value,
        modelfitp = function() private$..modelfitp$value,
        mat = function() private$..mat$value,
        thresh = function() private$..thresh$value,
        pmeasure = function() private$..pmeasure$value,
        thurs = function() private$..thurs$value,
        wplot = function() private$..wplot$value,
        total = function() private$..total$value,
        personmeasure = function() private$..personmeasure$value,
        pse = function() private$..pse$value,
        pinfit = function() private$..pinfit$value,
        poutfit = function() private$..poutfit$value,
        inplot = function() private$..inplot$value,
        outplot = function() private$..outplot$value,
        angle = function() private$..angle$value,
        tau = function() private$..tau$value,
        model = function() private$..model$value,
        lr = function() private$..lr$value,
        resid = function() private$..resid$value,
        piplot = function() private$..piplot$value,
        to = function() private$..to$value,
        st = function() private$..st$value,
        plot2 = function() private$..plot2$value,
        plot3 = function() private$..plot3$value,
        width = function() private$..width$value,
        height = function() private$..height$value,
        width5 = function() private$..width5$value,
        height5 = function() private$..height5$value,
        num = function() private$..num$value,
        plot4 = function() private$..plot4$value,
        width4 = function() private$..width4$value,
        height4 = function() private$..height4$value,
        num1 = function() private$..num1$value,
        plot6 = function() private$..plot6$value,
        width6 = function() private$..width6$value,
        height6 = function() private$..height6$value,
        width7 = function() private$..width7$value,
        height7 = function() private$..height7$value,
        width3 = function() private$..width3$value,
        height3 = function() private$..height3$value,
        width2 = function() private$..width2$value,
        height2 = function() private$..height2$value),
    private = list(
        ..vars = NA,
        ..imeasure = NA,
        ..ise = NA,
        ..infit = NA,
        ..outfit = NA,
        ..reliability = NA,
        ..modelfit = NA,
        ..modelfitp = NA,
        ..mat = NA,
        ..thresh = NA,
        ..pmeasure = NA,
        ..thurs = NA,
        ..wplot = NA,
        ..total = NA,
        ..personmeasure = NA,
        ..pse = NA,
        ..pinfit = NA,
        ..poutfit = NA,
        ..inplot = NA,
        ..outplot = NA,
        ..angle = NA,
        ..tau = NA,
        ..model = NA,
        ..lr = NA,
        ..resid = NA,
        ..piplot = NA,
        ..to = NA,
        ..st = NA,
        ..plot2 = NA,
        ..plot3 = NA,
        ..width = NA,
        ..height = NA,
        ..width5 = NA,
        ..height5 = NA,
        ..num = NA,
        ..plot4 = NA,
        ..width4 = NA,
        ..height4 = NA,
        ..num1 = NA,
        ..plot6 = NA,
        ..width6 = NA,
        ..height6 = NA,
        ..width7 = NA,
        ..height7 = NA,
        ..width3 = NA,
        ..height3 = NA,
        ..width2 = NA,
        ..height2 = NA)
)

polytomousResults <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
    "polytomousResults",
    inherit = jmvcore::Group,
    active = list(
        instructions = function() private$.items[["instructions"]],
        ia = function() private$.items[["ia"]],
        mf = function() private$.items[["mf"]],
        mcc = function() private$.items[["mcc"]],
        ss = function() private$.items[["ss"]],
        wplot = function() private$.items[["wplot"]],
        piplot = function() private$.items[["piplot"]],
        plot4 = function() private$.items[["plot4"]],
        plot6 = function() private$.items[["plot6"]],
        inplot = function() private$.items[["inplot"]],
        outplot = function() private$.items[["outplot"]],
        total = function() private$.items[["total"]],
        personmeasure = function() private$.items[["personmeasure"]],
        pse = function() private$.items[["pse"]],
        pinfit = function() private$.items[["pinfit"]],
        poutfit = function() private$.items[["poutfit"]],
        text = function() private$.items[["text"]],
        resid = function() private$.items[["resid"]],
        plot2 = function() private$.items[["plot2"]],
        plot3 = function() private$.items[["plot3"]]),
    private = list(),
    public=list(
        initialize=function(options) {
            super$initialize(
                options=options,
                name="",
                title="Polytomous Model",
                refs="snowIRT")
            self$add(jmvcore::Html$new(
                options=options,
                name="instructions",
                title="Instructions",
                visible=TRUE))
            self$add(R6::R6Class(
                inherit = jmvcore::Group,
                active = list(
                    items = function() private$.items[["items"]],
                    thresh = function() private$.items[["thresh"]],
                    thurs = function() private$.items[["thurs"]]),
                private = list(),
                public=list(
                    initialize=function(options) {
                        super$initialize(
                            options=options,
                            name="ia",
                            title="Item Analysis")
                        self$add(jmvcore::Table$new(
                            options=options,
                            name="items",
                            title="Item statistics of the rating scale model",
                            visible="(imeasure || ise || infit || outfit)",
                            rows="(vars)",
                            clearWith=list(
                                "vars"),
                            refs="TAM",
                            columns=list(
                                list(
                                    `name`="name", 
                                    `title`="", 
                                    `type`="text", 
                                    `content`="($key)"),
                                list(
                                    `name`="measure", 
                                    `title`="Measure", 
                                    `visible`="(imeasure)"),
                                list(
                                    `name`="ise", 
                                    `title`="S.E.Measure", 
                                    `visible`="(ise)"),
                                list(
                                    `name`="infit", 
                                    `title`="Infit", 
                                    `visible`="(infit)"),
                                list(
                                    `name`="outfit", 
                                    `title`="Outfit", 
                                    `visible`="(outfit)"))))
                        self$add(jmvcore::Table$new(
                            options=options,
                            name="thresh",
                            title="Delta-tau paramaterization of the partial credit model",
                            rows="(vars)",
                            visible="(thresh)",
                            clearWith=list(
                                "vars"),
                            refs="TAM",
                            columns=list(
                                list(
                                    `name`="name", 
                                    `title`="", 
                                    `type`="number", 
                                    `content`="($key)"),
                                list(
                                    `name`="pmeasure", 
                                    `title`="Measure", 
                                    `visible`="(pmeasure)"))))
                        self$add(jmvcore::Table$new(
                            options=options,
                            name="thurs",
                            title="Thurstone thresholds of the partial credit model",
                            rows="(vars)",
                            visible="(thurs)",
                            clearWith=list(
                                "vars"),
                            refs="TAM",
                            columns=list(
                                list(
                                    `name`="name", 
                                    `title`="", 
                                    `type`="number", 
                                    `content`="($key)"))))}))$new(options=options))
            self$add(R6::R6Class(
                inherit = jmvcore::Group,
                active = list(
                    scale = function() private$.items[["scale"]],
                    mat = function() private$.items[["mat"]]),
                private = list(),
                public=list(
                    initialize=function(options) {
                        super$initialize(
                            options=options,
                            name="mf",
                            title="Model Fit")
                        self$add(jmvcore::Table$new(
                            options=options,
                            name="scale",
                            title="Model Fit",
                            rows=1,
                            clearWith=list(
                                "vars"),
                            refs="TAM",
                            columns=list(
                                list(
                                    `name`="name", 
                                    `title`="", 
                                    `type`="text", 
                                    `content`="Scale"),
                                list(
                                    `name`="reliability", 
                                    `title`="Person Reliability", 
                                    `visible`="(reliability)"),
                                list(
                                    `name`="modelfit", 
                                    `title`="MADaQ3", 
                                    `visible`="(modelfit)"),
                                list(
                                    `name`="modelfitp", 
                                    `title`="p", 
                                    `format`="zto,pvalue", 
                                    `visible`="(modelfitp)"))))
                        self$add(jmvcore::Table$new(
                            options=options,
                            name="mat",
                            title="Q3 Correlation Matrix",
                            rows="(vars)",
                            visible="(mat)",
                            clearWith=list(
                                "vars"),
                            refs="TAM",
                            columns=list(
                                list(
                                    `name`=".name", 
                                    `title`="", 
                                    `type`="text", 
                                    `content`="($key)", 
                                    `combineBelow`=TRUE))))}))$new(options=options))
            self$add(R6::R6Class(
                inherit = jmvcore::Group,
                active = list(
                    model = function() private$.items[["model"]],
                    lr = function() private$.items[["lr"]]),
                private = list(),
                public=list(
                    initialize=function(options) {
                        super$initialize(
                            options=options,
                            name="mcc",
                            title="Model Comparison")
                        self$add(jmvcore::Table$new(
                            options=options,
                            name="model",
                            title="Model comparison",
                            visible="(model)",
                            clearWith=list(
                                "vars"),
                            refs="CDM",
                            columns=list(
                                list(
                                    `name`="name", 
                                    `title`="Model", 
                                    `type`="text"),
                                list(
                                    `name`="log", 
                                    `title`="Log-likelihood", 
                                    `type`="number"),
                                list(
                                    `name`="dev", 
                                    `title`="Deviance", 
                                    `type`="number"),
                                list(
                                    `name`="aic", 
                                    `title`="AIC", 
                                    `type`="number"),
                                list(
                                    `name`="bic", 
                                    `title`="BIC", 
                                    `type`="number"),
                                list(
                                    `name`="caic", 
                                    `title`="CAIC", 
                                    `type`="number"),
                                list(
                                    `name`="npars", 
                                    `title`="Parameters", 
                                    `type`="integer"),
                                list(
                                    `name`="obs", 
                                    `title`="N", 
                                    `type`="integer"))))
                        self$add(jmvcore::Table$new(
                            options=options,
                            name="lr",
                            title="Likelihood ratio test",
                            rows=1,
                            visible="(lr)",
                            clearWith=list(
                                "vars"),
                            refs="CDM",
                            columns=list(
                                list(
                                    `name`="model1", 
                                    `title`="Model 1", 
                                    `type`="text"),
                                list(
                                    `name`="model2", 
                                    `title`="Model 2", 
                                    `type`="text"),
                                list(
                                    `name`="chi", 
                                    `title`="\u03C7\u00B2", 
                                    `type`="number"),
                                list(
                                    `name`="df", 
                                    `title`="df", 
                                    `type`="integer"),
                                list(
                                    `name`="p", 
                                    `title`="p", 
                                    `format`="zto,pvalue"))))}))$new(options=options))
            self$add(R6::R6Class(
                inherit = jmvcore::Group,
                active = list(
                    st = function() private$.items[["st"]],
                    to = function() private$.items[["to"]]),
                private = list(),
                public=list(
                    initialize=function(options) {
                        super$initialize(
                            options=options,
                            name="ss",
                            title="Standard Scores")
                        self$add(jmvcore::Table$new(
                            options=options,
                            name="st",
                            title="Standard score",
                            visible="(st)",
                            refs="ShinyItemAnalysis",
                            clearWith=list(
                                "vars"),
                            columns=list(
                                list(
                                    `name`="name", 
                                    `title`="", 
                                    `type`="text", 
                                    `content`="($key)"),
                                list(
                                    `name`="Total", 
                                    `type`="integer"),
                                list(
                                    `name`="Percentile", 
                                    `type`="number"),
                                list(
                                    `name`="Z", 
                                    `type`="number"),
                                list(
                                    `name`="T", 
                                    `type`="number"))))
                        self$add(jmvcore::Table$new(
                            options=options,
                            name="to",
                            title="Summary of total score",
                            rows=1,
                            visible="(to)",
                            clearWith=list(
                                "vars"),
                            refs="snowIRT",
                            columns=list(
                                list(
                                    `name`="N", 
                                    `type`="number"),
                                list(
                                    `name`="Minimum", 
                                    `type`="number"),
                                list(
                                    `name`="Maximum", 
                                    `type`="number"),
                                list(
                                    `name`="Mean", 
                                    `type`="number"),
                                list(
                                    `name`="Median", 
                                    `type`="number"),
                                list(
                                    `name`="SD", 
                                    `type`="number"),
                                list(
                                    `name`="SE", 
                                    `type`="number"),
                                list(
                                    `name`="Skewness", 
                                    `type`="number"),
                                list(
                                    `name`="Kurtosis", 
                                    `type`="number"))))}))$new(options=options))
            self$add(jmvcore::Image$new(
                options=options,
                name="wplot",
                title="Wright Map",
                visible="(wplot)",
                renderFun=".wplot",
                refs="ShinyItemAnalysis",
                clearWith=list(
                    "vars",
                    "width",
                    "height")))
            self$add(jmvcore::Image$new(
                options=options,
                name="piplot",
                title="Person-item map for PCM ",
                visible="(piplot)",
                renderFun=".piPlot",
                refs="eRm",
                clearWith=list(
                    "vars",
                    "width5",
                    "height5")))
            self$add(jmvcore::Image$new(
                options=options,
                name="plot4",
                title="Item Characteristic Curve(ICC)",
                visible="(plot4)",
                renderFun=".plot4",
                clearWith=list(
                    "vars",
                    "num",
                    "width4",
                    "height4")))
            self$add(jmvcore::Image$new(
                options=options,
                name="plot6",
                title="Item category for PCM",
                visible="(plot6)",
                renderFun=".plot6",
                clearWith=list(
                    "vars",
                    "num1",
                    "width6",
                    "height6")))
            self$add(jmvcore::Image$new(
                options=options,
                name="inplot",
                title="Item Infit Plot",
                visible="(inplot)",
                renderFun=".inPlot",
                clearWith=list(
                    "vars",
                    "angle",
                    "width7",
                    "height7")))
            self$add(jmvcore::Image$new(
                options=options,
                name="outplot",
                title="Item Outfit Plot",
                visible="(outplot)",
                renderFun=".outPlot",
                clearWith=list(
                    "vars",
                    "angle",
                    "width7",
                    "height7")))
            self$add(jmvcore::Output$new(
                options=options,
                name="total",
                title="Total",
                varTitle="Total",
                measureType="continuous",
                clearWith=list(
                    "vars")))
            self$add(jmvcore::Output$new(
                options=options,
                name="personmeasure",
                title="Measure",
                varTitle="Measure",
                measureType="continuous",
                clearWith=list(
                    "vars")))
            self$add(jmvcore::Output$new(
                options=options,
                name="pse",
                title="SE",
                varTitle="SE",
                measureType="continuous",
                clearWith=list(
                    "vars")))
            self$add(jmvcore::Output$new(
                options=options,
                name="pinfit",
                title="Infit",
                varTitle="Infit",
                measureType="continuous",
                clearWith=list(
                    "vars")))
            self$add(jmvcore::Output$new(
                options=options,
                name="poutfit",
                title="Outfit",
                varTitle="Outfit",
                measureType="continuous",
                clearWith=list(
                    "vars")))
            self$add(jmvcore::Preformatted$new(
                options=options,
                name="text",
                title="Rating Scale Deltas/thresholds",
                clearWith=list(
                    "vars")))
            self$add(jmvcore::Output$new(
                options=options,
                name="resid",
                title="Standardized residuals for PCA",
                clearWith=list(
                    "vars")))
            self$add(jmvcore::Image$new(
                options=options,
                name="plot2",
                title="Histogram of Total Score",
                requiresData=TRUE,
                visible="(plot2)",
                renderFun=".plot2",
                refs="snowIRT",
                clearWith=list(
                    "vars",
                    "width2",
                    "height2")))
            self$add(jmvcore::Image$new(
                options=options,
                name="plot3",
                title="Person Fit Plot",
                requiresData=TRUE,
                visible="(plot3)",
                renderFun=".plot3",
                refs="snowIRT",
                clearWith=list(
                    "vars",
                    "width3",
                    "plot3")))}))

polytomousBase <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
    "polytomousBase",
    inherit = jmvcore::Analysis,
    public = list(
        initialize = function(options, data=NULL, datasetId="", analysisId="", revision=0) {
            super$initialize(
                package = "snowIRT",
                name = "polytomous",
                version = c(1,0,0),
                options = options,
                results = polytomousResults$new(options=options),
                data = data,
                datasetId = datasetId,
                analysisId = analysisId,
                revision = revision,
                pause = NULL,
                completeWhenFilled = FALSE,
                requiresMissings = FALSE,
                weightsSupport = 'none')
        }))

#' Polytomous Model
#'
#' 
#' @param data The data as a data frame.
#' @param vars .
#' @param imeasure .
#' @param ise .
#' @param infit .
#' @param outfit .
#' @param reliability .
#' @param modelfit .
#' @param modelfitp .
#' @param mat .
#' @param thresh .
#' @param pmeasure .
#' @param thurs .
#' @param wplot .
#' @param inplot .
#' @param outplot .
#' @param angle a number from 0 to 90 defining the angle of the x-axis labels,
#'   where 0 degrees represents completely horizontal labels.
#' @param tau .
#' @param model .
#' @param lr .
#' @param piplot .
#' @param to .
#' @param st .
#' @param plot2 .
#' @param plot3 .
#' @param width .
#' @param height .
#' @param width5 .
#' @param height5 .
#' @param num .
#' @param plot4 .
#' @param width4 .
#' @param height4 .
#' @param num1 .
#' @param plot6 .
#' @param width6 .
#' @param height6 .
#' @param width7 .
#' @param height7 .
#' @param width3 .
#' @param height3 .
#' @param width2 .
#' @param height2 .
#' @return A results object containing:
#' \tabular{llllll}{
#'   \code{results$instructions} \tab \tab \tab \tab \tab a html \cr
#'   \code{results$ia$items} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$ia$thresh} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$ia$thurs} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$mf$scale} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$mf$mat} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$mcc$model} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$mcc$lr} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$ss$st} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$ss$to} \tab \tab \tab \tab \tab a table \cr
#'   \code{results$wplot} \tab \tab \tab \tab \tab an image \cr
#'   \code{results$piplot} \tab \tab \tab \tab \tab an image \cr
#'   \code{results$plot4} \tab \tab \tab \tab \tab an image \cr
#'   \code{results$plot6} \tab \tab \tab \tab \tab an image \cr
#'   \code{results$inplot} \tab \tab \tab \tab \tab an image \cr
#'   \code{results$outplot} \tab \tab \tab \tab \tab an image \cr
#'   \code{results$total} \tab \tab \tab \tab \tab an output \cr
#'   \code{results$personmeasure} \tab \tab \tab \tab \tab an output \cr
#'   \code{results$pse} \tab \tab \tab \tab \tab an output \cr
#'   \code{results$pinfit} \tab \tab \tab \tab \tab an output \cr
#'   \code{results$poutfit} \tab \tab \tab \tab \tab an output \cr
#'   \code{results$text} \tab \tab \tab \tab \tab a preformatted \cr
#'   \code{results$resid} \tab \tab \tab \tab \tab an output \cr
#'   \code{results$plot2} \tab \tab \tab \tab \tab an image \cr
#'   \code{results$plot3} \tab \tab \tab \tab \tab an image \cr
#' }
#'
#' @export
polytomous <- function(
    data,
    vars,
    imeasure = TRUE,
    ise = TRUE,
    infit = FALSE,
    outfit = FALSE,
    reliability = TRUE,
    modelfit = FALSE,
    modelfitp = FALSE,
    mat = FALSE,
    thresh = TRUE,
    pmeasure = FALSE,
    thurs = FALSE,
    wplot = TRUE,
    inplot = FALSE,
    outplot = FALSE,
    angle = 0,
    tau = FALSE,
    model = FALSE,
    lr = FALSE,
    piplot = TRUE,
    to = FALSE,
    st = FALSE,
    plot2 = FALSE,
    plot3 = FALSE,
    width = 500,
    height = 500,
    width5 = 500,
    height5 = 500,
    num = 1,
    plot4 = FALSE,
    width4 = 500,
    height4 = 500,
    num1 = 1,
    plot6 = FALSE,
    width6 = 500,
    height6 = 500,
    width7 = 500,
    height7 = 500,
    width3 = 500,
    height3 = 500,
    width2 = 500,
    height2 = 500) {

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

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


    options <- polytomousOptions$new(
        vars = vars,
        imeasure = imeasure,
        ise = ise,
        infit = infit,
        outfit = outfit,
        reliability = reliability,
        modelfit = modelfit,
        modelfitp = modelfitp,
        mat = mat,
        thresh = thresh,
        pmeasure = pmeasure,
        thurs = thurs,
        wplot = wplot,
        inplot = inplot,
        outplot = outplot,
        angle = angle,
        tau = tau,
        model = model,
        lr = lr,
        piplot = piplot,
        to = to,
        st = st,
        plot2 = plot2,
        plot3 = plot3,
        width = width,
        height = height,
        width5 = width5,
        height5 = height5,
        num = num,
        plot4 = plot4,
        width4 = width4,
        height4 = height4,
        num1 = num1,
        plot6 = plot6,
        width6 = width6,
        height6 = height6,
        width7 = width7,
        height7 = height7,
        width3 = width3,
        height3 = height3,
        width2 = width2,
        height2 = height2)

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

    analysis$run()

    analysis$results
}
hyunsooseol/snowIRT documentation built on March 20, 2024, 8 p.m.