R/messageGenerator.R
messageGenerator.Rd
Helper function for producing output messages for
checkFunction
type functions.
messageGenerator(problemStatus, message = "Note that a check function found the following problematic values:", nMax = 10)
problemStatus | A list consisting of two entries:
|
---|---|
message | Optional, but recommended. A message describing what problem the
problem values are related to. If |
nMax | Maximum number of problem values to be printed in the message. If the total
number of problem values exceeds nMax, the number of omitted problem
values are added to the message. Defaults to |
A character string with a problem description.
This function is a tool for building checkFunction
s for the
dataMaid
makeDataReport
function. checkFunction
s will often identify a number
of values in a variable that are somehow problematic. messageGenerator
takes
these values, pastes them together with a problem description and makes sure that the
formatting is appropriate for being rendered in a rmarkdown
document.
We recommend writing short and precise problem descriptions (see examples),
but if no message is supplied, the following message is generated:
"Note that a check function found the following problematic values: [problem values]".
#Varibales with/without underscores noUSVar <- c(1:10) USVar <- c("_a", "n_b", "b_", "_", 1:10) #Define a checkFunction using messageGenerator with a manual #problem description: identifyUnderscores <- function(v, nMax = Inf) { v <- as.character(v) underscorePlaces <- regexpr("_", v) > 0 problemValues <- unique(v[underscorePlaces]) problem <- any(underscorePlaces) message <- messageGenerator(list(problemValues = problemValues, problem = problem), "The following values contain underscores:", nMax = nMax) checkResult(list(problem = problem, message = message, problemValues = problemValues)) } identifyUnderscores(noUSVar) #no problem#> No problems found.identifyUnderscores(USVar) #problems#> The following values contain underscores: _, _a, b_, n_b.#Only print the first two problemvalues in the message: identifyUnderscores(USVar, nMax = 2)#> The following values contain underscores: _, _a (2 additional values omitted).#Define same function, but without a manual problem description in #the messageGenerator-call: identifyUnderscores2 <- function(v, nMax = Inf) { v <- as.character(v) underscorePlaces <- regexpr("_", v) > 0 problemValues <- unique(v[underscorePlaces]) problem <- any(underscorePlaces) message <- messageGenerator(list(problemValues = problemValues, problem = problem), nMax = nMax) checkResult(list(problem = problem, message = message, problemValues = problemValues)) } identifyUnderscores2(noUSVar) #no problem#> No problems found.identifyUnderscores2(USVar) #problems#> Note that a check function found the following problematic values: _, _a, b_, n_b.