Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
pkgload::load_all()
## ----setup--------------------------------------------------------------------
library(scrutiny)
## -----------------------------------------------------------------------------
schlim_scalar <- function(y, n) {
y <- as.numeric(y)
n <- as.numeric(n)
all(y / 3 > n)
}
schlim_scalar(y = 30, n = 4)
schlim_scalar(y = 2, n = 7)
## -----------------------------------------------------------------------------
schlim <- Vectorize(schlim_scalar)
schlim(y = 10:15, n = 4)
## -----------------------------------------------------------------------------
schlim_map <- function_map(
.fun = schlim_scalar,
.reported = c("y", "n"),
.name_test = "SCHLIM"
)
# Example data:
df1 <- tibble::tibble(y = 16:25, n = 3:12)
schlim_map(df1)
## -----------------------------------------------------------------------------
df2 <- df1
names(df2) <- c("foo", "bar")
df2
schlim_map(df2, y = foo, n = bar)
## ----error=TRUE---------------------------------------------------------------
schlim_map(df2, y = foo)
# With a wrong identification:
schlim_map(df2, n = mike)
## ----eval=FALSE, include=FALSE------------------------------------------------
# # NOTE: The two diagrams below should have width 585 and a locked aspect ratio.
## ----include=FALSE------------------------------------------------------------
# Just internally, so that the function source code below works:
add_class <- scrutiny:::add_class
## -----------------------------------------------------------------------------
schlim_map_alt1 <- function(data, ...) {
scrutiny::check_mapper_input_colnames(data, c("y", "n"), "SCHLIM")
tibble::tibble(
y = data$y,
n = data$n,
consistency = purrr::pmap_lgl(data, schlim_scalar, ...)
) %>%
add_class("scr_schlim_map") # See section "S3 classes" below
}
## -----------------------------------------------------------------------------
schlim_map_alt2 <- function(data, ...) {
scrutiny::check_mapper_input_colnames(data, c("y", "n"), "SCHLIM")
data %>%
dplyr::rowwise() %>%
dplyr::mutate(consistency = schlim_scalar(y, n, ...)) %>%
dplyr::ungroup() %>%
dplyr::relocate(y, n, consistency) %>%
add_class("scr_schlim_map") # See section "S3 classes" below
}
## -----------------------------------------------------------------------------
schlim_map_alt1(df1)
schlim_map_alt2(df1)
## ----eval=FALSE---------------------------------------------------------------
# add_class <- function(x, new_class) {
# class(x) <- c(new_class, class(x))
# x
# }
## -----------------------------------------------------------------------------
some_object <- tibble::tibble(x = 5)
some_object <- add_class(some_object, "dummy class")
class(some_object)
## -----------------------------------------------------------------------------
df1_tested <- schlim_map(df1)
class(df1_tested)
## ----error=TRUE---------------------------------------------------------------
# The `name_test` argument is only for the alert
# that might be issued by `check_audit_special()`:
audit.scr_schlim_map <- function(data) {
audit_cols_minimal(data, name_test = "SCHLIM")
}
# This calls our new method:
audit(df1_tested)
# This doesn't work because no method was defined:
audit(iris)
## -----------------------------------------------------------------------------
audit_grim <- audit(grim_map(pigs1))
audit_grimmer <- audit(grimmer_map(pigs5))
write_doc_audit(sample_output = audit_grim, name_test = "GRIM")
write_doc_audit(sample_output = audit_grimmer, name_test = "GRIMMER")
## ----eval=FALSE---------------------------------------------------------------
# grim_map_seq <- function_map_seq(
# .fun = grim_map,
# .reported = c("x", "n"),
# .name_test = "GRIM",
# )
#
# grimmer_map_seq <- function_map_seq(
# .fun = grimmer_map,
# .reported = c("x", "sd", "n"),
# .name_test = "GRIMMER"
# )
#
# debit_map_seq <- function_map_seq(
# .fun = debit_map,
# .reported = c("x", "sd", "n"),
# .name_test = "DEBIT",
# )
## -----------------------------------------------------------------------------
schlim_map_seq <- function_map_seq(
.fun = schlim_map,
.reported = c("y", "n"),
.name_test = "SCHLIM"
)
# Test dispersed sequences:
out_seq <- schlim_map_seq(df1)
out_seq
# Summarize:
audit_seq(out_seq)
## -----------------------------------------------------------------------------
df1 %>%
schlim_map_seq(include_consistent = TRUE) %>%
audit_seq()
# Compare with the original values:
df1
## ----eval=FALSE---------------------------------------------------------------
# grim_map_total_n <- function_map_total_n(
# .fun = grim_map,
# .reported = "x", # don't include `n` here
# .name_test = "GRIM"
# )
#
# grimmer_map_total_n <- function_map_total_n(
# .fun = grimmer_map,
# .reported = c("x", "sd"), # don't include `n` here
# .name_test = "GRIMMER"
# )
#
# debit_map_total_n <- function_map_total_n(
# .fun = debit_map,
# .reported = c("x", "sd"), # don't include `n` here
# .name_test = "DEBIT"
# )
## -----------------------------------------------------------------------------
schlim_map_total_n <- function_map_total_n(
.fun = schlim_map,
.reported = "y",
.name_test = "SCHLIM"
)
# Example data:
df_groups_schlim <- tibble::tribble(
~y1, ~y2, ~n,
84, 37, 29,
61, 55, 26
)
# Test dispersed sequences:
out_total_n <- schlim_map_total_n(df_groups_schlim)
out_total_n
# Summarize:
audit_total_n(out_total_n)
## ----eval=FALSE---------------------------------------------------------------
# write_doc_audit_seq(key_args = c("x", "n"), name_test = "GRIM")
# write_doc_audit_seq(key_args = c("x", "sd", "n"), name_test = "GRIMMER")
# write_doc_audit_seq(key_args = c("x", "sd", "n"), name_test = "DEBIT")
## ----eval=FALSE---------------------------------------------------------------
# write_doc_audit_total_n(key_args = c("x", "n"), name_test = "GRIM")
# write_doc_audit_total_n(key_args = c("x", "sd", "n"), name_test = "GRIMMER")
# write_doc_audit_total_n(key_args = c("x", "sd", "n"), name_test = "DEBIT")
## ----include=FALSE, eval=FALSE------------------------------------------------
# # Note: The diagram was made on diagrams.net. The bold margins were created as follows: (1) selecting the respective field, (2) clicking on the `View` symbol at the upper left, (3) selecting `Format Panel`, and (4) setting the line thickness from 1 to 3 pt.
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.