knitr::opts_chunk$set( error = TRUE, collapse = TRUE, comment = "#>", eval = FALSE ) library(attempt)
Adverbs take a function and return a modified function.
silently()
silently()
transforms a function so that when you call this new function, it returns nothing unless there is an error or a warning (contrary to attempt
that returns the result). In a sense, the new function stay silent unless error or warning.
silent_log <- silently(log) silent_log(1) silent_log("a") # Error in .f(...) : non-numeric argument to mathematical function
With silently()
, the result is never returned.
silent_matrix <- silently(matrix) silent_matrix(1:3, 2) #Warning message: #In .f(...) : # data length [3] is not a sub-multiple or multiple of the number of rows [2]
surely()
surely()
transforms a function so that when you call this new function, it calls attempt()
- i.e. in the code below, calling sure_log(1)
is the same as calling attempt(log(1))
. In a sense, you're sure this new function will always work.
sure_log <- surely(log) sure_log(1) # [1] 0 sure_log("a") # Error: non-numeric argument to mathematical function
with_message()
and with_warning()
These two functions take a function, and add a warning or a message to it.
as_num_msg <- with_message(as.numeric, msg = "We're performing a numeric conversion") as_num_warn <- with_warning(as.numeric, msg = "We're performing a numeric conversion") as_num_msg("1") as_num_warn("1")
without_message()
, without_warning()
, and discretly()
These three functions do the opposite, as they remove warnings and messages:
matrix(1:3, ncol = 2) no_warning_matrix <- without_warning(matrix) no_warning_matrix(1:3, ncol = 2)
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.