# This file is automatically generated, you probably don't want to edit this
glmbasicOptions <- if (requireNamespace('jmvcore')) R6::R6Class(
"glmbasicOptions",
inherit = jmvcore::Options,
public = list(
initialize = function(
out = NULL,
preds = NULL,
graphic = TRUE,
graphicassump = FALSE,
estimates = TRUE,
se = TRUE,
line = "Loess",
center = "Median + quartiles", ...) {
super$initialize(
package='flexplot',
name='glmbasic',
requiresData=TRUE,
...)
private$..out <- jmvcore::OptionVariable$new(
"out",
out)
private$..preds <- jmvcore::OptionVariables$new(
"preds",
preds)
private$..graphic <- jmvcore::OptionBool$new(
"graphic",
graphic,
default=TRUE)
private$..graphicassump <- jmvcore::OptionBool$new(
"graphicassump",
graphicassump,
default=FALSE)
private$..estimates <- jmvcore::OptionBool$new(
"estimates",
estimates,
default=TRUE)
private$..se <- jmvcore::OptionBool$new(
"se",
se,
default=TRUE)
private$..line <- jmvcore::OptionList$new(
"line",
line,
options=list(
"Loess",
"Regression",
"Logistic"),
default="Loess")
private$..center <- jmvcore::OptionList$new(
"center",
center,
options=list(
"Median + quartiles",
"Mean + sterr",
"Mean + stdev"),
default="Median + quartiles")
self$.addOption(private$..out)
self$.addOption(private$..preds)
self$.addOption(private$..graphic)
self$.addOption(private$..graphicassump)
self$.addOption(private$..estimates)
self$.addOption(private$..se)
self$.addOption(private$..line)
self$.addOption(private$..center)
}),
active = list(
out = function() private$..out$value,
preds = function() private$..preds$value,
graphic = function() private$..graphic$value,
graphicassump = function() private$..graphicassump$value,
estimates = function() private$..estimates$value,
se = function() private$..se$value,
line = function() private$..line$value,
center = function() private$..center$value),
private = list(
..out = NA,
..preds = NA,
..graphic = NA,
..graphicassump = NA,
..estimates = NA,
..se = NA,
..line = NA,
..center = NA)
)
glmbasicResults <- if (requireNamespace('jmvcore')) R6::R6Class(
inherit = jmvcore::Group,
active = list(
assumpplot = function() private$.items[["assumpplot"]],
plot = function() private$.items[["plot"]],
glmcat = function() private$.items[["glmcat"]],
diff = function() private$.items[["diff"]],
rsq = function() private$.items[["rsq"]]),
private = list(),
public=list(
initialize=function(options) {
super$initialize(
options=options,
name="",
title="General Linear Model")
self$add(jmvcore::Image$new(
options=options,
name="assumpplot",
title="Residual (diagnostic) plots",
width=600,
height=400,
renderFun=".assumpplot",
visible="(graphicassump)"))
self$add(jmvcore::Image$new(
options=options,
name="plot",
title="Analysis plot",
width=600,
height=400,
renderFun=".plot",
visible="(graphic)"))
self$add(jmvcore::Table$new(
options=options,
name="glmcat",
title="Estimates and effect sizes for categorical predictors",
columns=list(
list(
`name`="var",
`title`="Variable",
`type`="text"),
list(
`name`="levels",
`title`="Level",
`type`="text"),
list(
`name`="means",
`title`="Estimate",
`type`="number"),
list(
`name`="lower",
`title`="Lower",
`superTitle`="95% Confidence Interval",
`type`="number"),
list(
`name`="upper",
`title`="Upper",
`superTitle`="95% Confidence Interval",
`type`="number")),
visible="(estimates)"))
self$add(jmvcore::Table$new(
options=options,
name="diff",
title="Difference between factor levels for categorical predictors",
columns=list(
list(
`name`="variables",
`title`="Variable",
`type`="text"),
list(
`name`="comparison",
`title`="Comparison",
`type`="text"),
list(
`name`="diff",
`title`="Difference",
`type`="number"),
list(
`name`="lower",
`title`="Lower",
`superTitle`="95% Confidence Interval",
`type`="number"),
list(
`name`="upper",
`title`="Upper",
`superTitle`="95% Confidence Interval",
`type`="number"),
list(
`name`="cohensd",
`title`="Cohen's d",
`type`="number")),
visible="(estimates)"))
self$add(jmvcore::Table$new(
options=options,
name="rsq",
title="R\u00B2 and semi-partial R\u00B2 estimates",
columns=list(
list(
`name`="var",
`title`="Source",
`type`="text"),
list(
`name`="Estimate",
`type`="number")),
visible="(estimates)"))}))
glmbasicBase <- if (requireNamespace('jmvcore')) R6::R6Class(
"glmbasicBase",
inherit = jmvcore::Analysis,
public = list(
initialize = function(options, data=NULL, datasetId="", analysisId="", revision=0) {
super$initialize(
package = 'flexplot',
name = 'glmbasic',
version = c(1,0,0),
options = options,
results = glmbasicResults$new(options=options),
data = data,
datasetId = datasetId,
analysisId = analysisId,
revision = revision,
pause = NULL,
completeWhenFilled = FALSE,
requiresMissings = FALSE)
}))
#' General Linear Model
#'
#'
#' @param data .
#' @param out .
#' @param preds .
#' @param graphic .
#' @param graphicassump .
#' @param estimates .
#' @param se .
#' @param line .
#' @param center .
#' @return A results object containing:
#' \tabular{llllll}{
#' \code{results$assumpplot} \tab \tab \tab \tab \tab an image \cr
#' \code{results$plot} \tab \tab \tab \tab \tab an image \cr
#' \code{results$glmcat} \tab \tab \tab \tab \tab a table \cr
#' \code{results$diff} \tab \tab \tab \tab \tab a table \cr
#' \code{results$rsq} \tab \tab \tab \tab \tab a table \cr
#' }
#'
#' Tables can be converted to data frames with \code{asDF} or \code{\link{as.data.frame}}. For example:
#'
#' \code{results$glmcat$asDF}
#'
#' \code{as.data.frame(results$glmcat)}
#'
#' @export
glmbasic <- function(
data,
out,
preds,
graphic = TRUE,
graphicassump = FALSE,
estimates = TRUE,
se = TRUE,
line = "Loess",
center = "Median + quartiles") {
if ( ! requireNamespace('jmvcore'))
stop('glmbasic 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(data))
data <- jmvcore::marshalData(
parent.frame(),
`if`( ! missing(out), out, NULL),
`if`( ! missing(preds), preds, NULL))
options <- glmbasicOptions$new(
out = out,
preds = preds,
graphic = graphic,
graphicassump = graphicassump,
estimates = estimates,
se = se,
line = line,
center = center)
analysis <- glmbasicClass$new(
options = options,
data = data)
analysis$run()
analysis$results
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.