diff --git a/DESCRIPTION b/DESCRIPTION index 95c58e6..53d9da7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: mirtCAT -Version: 1.6.5 +Version: 1.7 Type: Package Title: Computerized Adaptive Testing with Multidimensional Item Response Theory diff --git a/NEWS.md b/NEWS.md index 47df46b..e54ffae 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,8 @@ # mirtCAT 1.7 +- message added in red whenever selection conditions not met (e.g., when using forced choice, rating + scale options, or new mastery input) + - added an optioanl `Mastery` input colum to `df` to prevent the GUI from continuing until the item is answered correctly (not useful for CATs, but supported for teaching interfaces) diff --git a/R/mirtCAT.R b/R/mirtCAT.R index 44b00ec..1ff08f7 100644 --- a/R/mirtCAT.R +++ b/R/mirtCAT.R @@ -30,7 +30,7 @@ #' \item{\code{Type}}{Indicates the type of response input #' to use from the shiny package. The supported types are: \code{'radio'} for radio buttons #' (\code{\link{radioButtons}}), \code{'select'} for a pull-down box for selecting -#' inputs (\code{\link{selectInput}}), \code{'rankselect'} for a set of pull-down boxs rank-ordering +#' inputs (\code{\link{selectInput}}), \code{'rankselect'} for a set of pull-down boxes rank-ordering #' inputs (\code{\link{selectInput}}) associated with each option supplied, #' \code{'text'} and \code{'textArea'} for requiring #' typed user input (\code{\link{textInput}} and \code{\link{textAreaInput}}), @@ -123,7 +123,7 @@ #' \code{'MPWI'} for maximum posterior weighted information, \code{'MEI'} for #' maximum expected information, and \code{'IKLP'} as well as \code{'IKL'} for the #' integration based Kullback-Leibler criteria with and without the prior density weight, -#' respectively, and their root-nitems administered weighted counter-parts, \code{'IKLn'} and +#' respectively, and their root-n items administered weighted counter-parts, \code{'IKLn'} and #' \code{'IKLPn'}. #' #' Possible inputs for multidimensional adaptive tests include: \code{'Drule'} @@ -185,7 +185,7 @@ #' first before running the simulations in parallel? Setting to \code{TRUE} will ensure that #' using the cluster will be optimal every time a new \code{cl} is defined. Default is \code{TRUE} #' -#' @param customTypes an optional list input contaning functions for Designing Original Graphical Stimuli (DOGS). +#' @param customTypes an optional list input containing functions for Designing Original Graphical Stimuli (DOGS). #' DOGS elements in the input list must contain a unique name, and the item with which it is associated must be #' declared in the a \code{df$Type} input. The functions defined must be of the form #' diff --git a/R/server.R b/R/server.R index 666f3c0..ac55c51 100644 --- a/R/server.R +++ b/R/server.R @@ -134,9 +134,9 @@ server <- function(input, output, session) { default = ip) stemOutput <- stemContent(pick) .MCE$prevClick <- click - return(list(outmessage, stemOutput, + return(list(stemOutput, .MCE$shinyGUI$df$Rendered_Question[[pick]], - tmp$questions)) + tmp$questions, outmessage)) } } @@ -152,6 +152,8 @@ server <- function(input, output, session) { } else { if(.MCE$shinyGUI$time_before_answer >= (proc.time()[3L] - .MCE$start_time) || (.MCE$shinyGUI$forced_choice && .MCE$shinyGUI$df$Type[pick] != 'none')){ + if(.MCE$shinyGUI$time_before_answer >= (proc.time()[3L] - .MCE$start_time)) + outmessage <- NULL .MCE$shift_back <- .MCE$shift_back + 1L .MCE$invalid_count <- .MCE$invalid_count + 1L tmp <- lapply(.MCE$shinyGUI$df, function(x, pick) x[pick], pick=pick) @@ -162,9 +164,9 @@ server <- function(input, output, session) { default = ip) stemOutput <- stemContent(pick) .MCE$prevClick <- click - return(list(outmessage, stemOutput, + return(list(stemOutput, .MCE$shinyGUI$df$Rendered_Question[[pick]], - tmp$questions)) + tmp$questions, outmessage)) } else { .MCE$person$item_time[pick] <- proc.time()[3L] - .MCE$start_time .MCE$start_time <- NULL diff --git a/man/mirtCAT.Rd b/man/mirtCAT.Rd index b1657ab..60fd5e3 100644 --- a/man/mirtCAT.Rd +++ b/man/mirtCAT.Rd @@ -36,7 +36,9 @@ type of response format, questions, options, answers, and stems: \item{\code{Type}}{Indicates the type of response input to use from the shiny package. The supported types are: \code{'radio'} for radio buttons (\code{\link{radioButtons}}), \code{'select'} for a pull-down box for selecting - inputs (\code{\link{selectInput}}), \code{'text'} and \code{'textArea'} for requiring + inputs (\code{\link{selectInput}}), \code{'rankselect'} for a set of pull-down boxes rank-ordering + inputs (\code{\link{selectInput}}) associated with each option supplied, + \code{'text'} and \code{'textArea'} for requiring typed user input (\code{\link{textInput}} and \code{\link{textAreaInput}}), \code{'checkbox'} for allowing multiple responses to be checked off (\code{\link{checkboxGroupInput}}), @@ -91,6 +93,10 @@ type of response format, questions, options, answers, and stems: indicate no time limit for the respective items. Note that this option can only be used when \code{shinyGUI = list(forced_choice = FALSE)}} + \item{\code{Mastery}}{(Optional) a logical vector indicating whether the item must be mastered + prior to continuing. Naturally, this requires that one or more \code{Answers} are provided, + or suitable functions for scoring are supplied} + \item{\code{...}}{In cases where \code{'slider'} inputs are used instead only the \code{Question} input is required along with (at minimum) a \code{min}, \code{max}, and \code{step} column. In rows where the \code{Type == 'slider'} the @@ -123,7 +129,7 @@ sufficient response variability is present. Default is 'MAP'} \code{'MPWI'} for maximum posterior weighted information, \code{'MEI'} for maximum expected information, and \code{'IKLP'} as well as \code{'IKL'} for the integration based Kullback-Leibler criteria with and without the prior density weight, - respectively, and their root-nitems administered weighted counter-parts, \code{'IKLn'} and + respectively, and their root-n items administered weighted counter-parts, \code{'IKLn'} and \code{'IKLPn'}. Possible inputs for multidimensional adaptive tests include: \code{'Drule'} @@ -192,7 +198,7 @@ guaging how long Monte Carlo simulations will take to finish} first before running the simulations in parallel? Setting to \code{TRUE} will ensure that using the cluster will be optimal every time a new \code{cl} is defined. Default is \code{TRUE}} -\item{customTypes}{an optional list input contaning functions for Designing Original Graphical Stimuli (DOGS). +\item{customTypes}{an optional list input containing functions for Designing Original Graphical Stimuli (DOGS). DOGS elements in the input list must contain a unique name, and the item with which it is associated must be declared in the a \code{df$Type} input. The functions defined must be of the form