Nothing
#' Validate Tiered Assessment Data
#'
#' Checks whether a data frame is suitable for tiered
#' binary response conversion.
#'
#' @param data A data frame containing binary tier responses.
#' @param n_tier Number of tiers in each item.
#'
#' @return Invisibly returns TRUE if the data are valid.
#'
#' @examples
#' data <- data.frame(
#' Jwb_1 = c(1, 1, 0),
#' Als_1 = c(1, 0, 0),
#' Jwb_2 = c(0, 1, 1),
#' Als_2 = c(1, 0, 1)
#' )
#'
#' validate_data(data, n_tier = 2)
#'
#' @export
validate_data <- function(data, n_tier) {
# 1. Check data type
if (!is.data.frame(data)) {
stop("data harus berupa data.frame.")
}
# 2. Check empty data
if (nrow(data) == 0) {
stop("Data tidak boleh kosong.")
}
if (ncol(data) == 0) {
stop("Data harus memiliki minimal satu kolom.")
}
# 3. Check n_tier
if (
length(n_tier) != 1 ||
!is.numeric(n_tier) ||
is.na(n_tier) ||
n_tier < 1 ||
n_tier != as.integer(n_tier)
) {
stop(
"n_tier harus berupa satu bilangan bulat positif."
)
}
# 4. Check number of columns
if (ncol(data) %% n_tier != 0) {
stop(
"Jumlah kolom (",
ncol(data),
") tidak habis dibagi jumlah tier (",
n_tier,
")."
)
}
# 5. Check missing values
if (anyNA(data)) {
stop(
"Data mengandung NA. ",
"Periksa dan lengkapi data sebelum konversi."
)
}
# 6. Check binary values
values <- unlist(data, use.names = FALSE)
if (!all(values %in% c(0, 1))) {
invalid_values <- unique(
values[!values %in% c(0, 1)]
)
stop(
"Data hanya boleh berisi nilai 0 atau 1. ",
"Nilai tidak valid: ",
paste(invalid_values, collapse = ", ")
)
}
invisible(TRUE)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.