# This file is automatically generated, you probably don't want to edit this
consortOptions <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
"consortOptions",
inherit = jmvcore::Options,
public = list(
initialize = function(
initialN = 0,
notEligibleN = 0,
notEligibleText = "",
randomizedN = 0,
arm1Label = "Intervention",
arm1N = 0,
arm1ReceivedN = 0,
arm1LostN = 0,
arm1AnalyzedN = 0,
arm2Label = "Control",
arm2N = 0,
arm2ReceivedN = 0,
arm2LostN = 0,
arm2AnalyzedN = 0,
excludedText = "", ...) {
super$initialize(
package="ClinicoPath",
name="consort",
requiresData=TRUE,
...)
private$..initialN <- jmvcore::OptionInteger$new(
"initialN",
initialN,
default=0)
private$..notEligibleN <- jmvcore::OptionInteger$new(
"notEligibleN",
notEligibleN,
default=0)
private$..notEligibleText <- jmvcore::OptionString$new(
"notEligibleText",
notEligibleText,
default="")
private$..randomizedN <- jmvcore::OptionInteger$new(
"randomizedN",
randomizedN,
default=0)
private$..arm1Label <- jmvcore::OptionString$new(
"arm1Label",
arm1Label,
default="Intervention")
private$..arm1N <- jmvcore::OptionInteger$new(
"arm1N",
arm1N,
default=0)
private$..arm1ReceivedN <- jmvcore::OptionInteger$new(
"arm1ReceivedN",
arm1ReceivedN,
default=0)
private$..arm1LostN <- jmvcore::OptionInteger$new(
"arm1LostN",
arm1LostN,
default=0)
private$..arm1AnalyzedN <- jmvcore::OptionInteger$new(
"arm1AnalyzedN",
arm1AnalyzedN,
default=0)
private$..arm2Label <- jmvcore::OptionString$new(
"arm2Label",
arm2Label,
default="Control")
private$..arm2N <- jmvcore::OptionInteger$new(
"arm2N",
arm2N,
default=0)
private$..arm2ReceivedN <- jmvcore::OptionInteger$new(
"arm2ReceivedN",
arm2ReceivedN,
default=0)
private$..arm2LostN <- jmvcore::OptionInteger$new(
"arm2LostN",
arm2LostN,
default=0)
private$..arm2AnalyzedN <- jmvcore::OptionInteger$new(
"arm2AnalyzedN",
arm2AnalyzedN,
default=0)
private$..excludedText <- jmvcore::OptionString$new(
"excludedText",
excludedText,
default="")
self$.addOption(private$..initialN)
self$.addOption(private$..notEligibleN)
self$.addOption(private$..notEligibleText)
self$.addOption(private$..randomizedN)
self$.addOption(private$..arm1Label)
self$.addOption(private$..arm1N)
self$.addOption(private$..arm1ReceivedN)
self$.addOption(private$..arm1LostN)
self$.addOption(private$..arm1AnalyzedN)
self$.addOption(private$..arm2Label)
self$.addOption(private$..arm2N)
self$.addOption(private$..arm2ReceivedN)
self$.addOption(private$..arm2LostN)
self$.addOption(private$..arm2AnalyzedN)
self$.addOption(private$..excludedText)
}),
active = list(
initialN = function() private$..initialN$value,
notEligibleN = function() private$..notEligibleN$value,
notEligibleText = function() private$..notEligibleText$value,
randomizedN = function() private$..randomizedN$value,
arm1Label = function() private$..arm1Label$value,
arm1N = function() private$..arm1N$value,
arm1ReceivedN = function() private$..arm1ReceivedN$value,
arm1LostN = function() private$..arm1LostN$value,
arm1AnalyzedN = function() private$..arm1AnalyzedN$value,
arm2Label = function() private$..arm2Label$value,
arm2N = function() private$..arm2N$value,
arm2ReceivedN = function() private$..arm2ReceivedN$value,
arm2LostN = function() private$..arm2LostN$value,
arm2AnalyzedN = function() private$..arm2AnalyzedN$value,
excludedText = function() private$..excludedText$value),
private = list(
..initialN = NA,
..notEligibleN = NA,
..notEligibleText = NA,
..randomizedN = NA,
..arm1Label = NA,
..arm1N = NA,
..arm1ReceivedN = NA,
..arm1LostN = NA,
..arm1AnalyzedN = NA,
..arm2Label = NA,
..arm2N = NA,
..arm2ReceivedN = NA,
..arm2LostN = NA,
..arm2AnalyzedN = NA,
..excludedText = NA)
)
consortResults <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
"consortResults",
inherit = jmvcore::Group,
active = list(
todo = function() private$.items[["todo"]],
summary = function() private$.items[["summary"]],
plot = function() private$.items[["plot"]],
text = function() private$.items[["text"]]),
private = list(),
public=list(
initialize=function(options) {
super$initialize(
options=options,
name="",
title="CONSORT Flowchart",
refs=list(
"ClinicoPathJamoviModule"))
self$add(jmvcore::Html$new(
options=options,
name="todo",
title="To Do"))
self$add(jmvcore::Table$new(
options=options,
name="summary",
title="Summary Statistics",
rows=0,
columns=list(
list(
`name`="stage",
`title`="Stage",
`type`="text"),
list(
`name`="n",
`title`="N",
`type`="integer"),
list(
`name`="percent",
`title`="%",
`type`="number",
`format`="pc"))))
self$add(jmvcore::Image$new(
options=options,
name="plot",
title="CONSORT Flowchart",
width=800,
height=1000,
renderFun=".plot",
requiresData=FALSE))
self$add(jmvcore::Preformatted$new(
options=options,
name="text",
title="Text Summary",
visible=TRUE))}))
consortBase <- if (requireNamespace("jmvcore", quietly=TRUE)) R6::R6Class(
"consortBase",
inherit = jmvcore::Analysis,
public = list(
initialize = function(options, data=NULL, datasetId="", analysisId="", revision=0) {
super$initialize(
package = "ClinicoPath",
name = "consort",
version = c(1,0,0),
options = options,
results = consortResults$new(options=options),
data = data,
datasetId = datasetId,
analysisId = analysisId,
revision = revision,
pause = NULL,
completeWhenFilled = FALSE,
requiresMissings = FALSE,
weightsSupport = 'auto')
}))
#' CONSORT Flowchart
#'
#'
#' @param data The data as a data frame.
#' @param initialN Total number assessed for eligibility
#' @param notEligibleN Number not meeting eligibility criteria
#' @param notEligibleText List of reasons for exclusion (comma separated)
#' @param randomizedN Number randomized to interventions
#' @param arm1Label .
#' @param arm1N .
#' @param arm1ReceivedN .
#' @param arm1LostN .
#' @param arm1AnalyzedN .
#' @param arm2Label .
#' @param arm2N .
#' @param arm2ReceivedN .
#' @param arm2LostN .
#' @param arm2AnalyzedN .
#' @param excludedText Reasons for post-randomization exclusions (comma
#' separated)
#' @return A results object containing:
#' \tabular{llllll}{
#' \code{results$todo} \tab \tab \tab \tab \tab a html \cr
#' \code{results$summary} \tab \tab \tab \tab \tab a table \cr
#' \code{results$plot} \tab \tab \tab \tab \tab an image \cr
#' \code{results$text} \tab \tab \tab \tab \tab a preformatted \cr
#' }
#'
#' Tables can be converted to data frames with \code{asDF} or \code{\link{as.data.frame}}. For example:
#'
#' \code{results$summary$asDF}
#'
#' \code{as.data.frame(results$summary)}
#'
#' @export
consort <- function(
data,
initialN = 0,
notEligibleN = 0,
notEligibleText = "",
randomizedN = 0,
arm1Label = "Intervention",
arm1N = 0,
arm1ReceivedN = 0,
arm1LostN = 0,
arm1AnalyzedN = 0,
arm2Label = "Control",
arm2N = 0,
arm2ReceivedN = 0,
arm2LostN = 0,
arm2AnalyzedN = 0,
excludedText = "") {
if ( ! requireNamespace("jmvcore", quietly=TRUE))
stop("consort requires jmvcore to be installed (restart may be required)")
if (missing(data))
data <- jmvcore::marshalData(
parent.frame())
options <- consortOptions$new(
initialN = initialN,
notEligibleN = notEligibleN,
notEligibleText = notEligibleText,
randomizedN = randomizedN,
arm1Label = arm1Label,
arm1N = arm1N,
arm1ReceivedN = arm1ReceivedN,
arm1LostN = arm1LostN,
arm1AnalyzedN = arm1AnalyzedN,
arm2Label = arm2Label,
arm2N = arm2N,
arm2ReceivedN = arm2ReceivedN,
arm2LostN = arm2LostN,
arm2AnalyzedN = arm2AnalyzedN,
excludedText = excludedText)
analysis <- consortClass$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.