debugr is a package designed to support debugging in R. It mainly provides thedwatch() function which prints a debug output to the console or to a file. A debug output can consist of a static text message, the values of one or more objects (potentially transformed by applying some functions) or the value of one or multiple (more complex) R expressions.
Whether or not a debug message is displayed can be made dependent on the evaluation of a criterion phrased as an R expression. Generally, debug messages are only shown if the debug mode is activated. The debug mode is activated and deactivated withdebugr_switchOn() anddebugr_switchOff(), respectively, which change the logicaldebugr.active value in the global options. Since debug messages are only displayed in debug mode, thedwatch() function calls can even remain in the original code as they remain silent and won't have any effect until the debug mode is switched on again.
This is a basic example which shows you how to usedwatch(). It prints out the value of thez object every timez exceeds the threshold of 40,000.
library(debugr)myfunction<-function(x) {justastring<-"Not much information here"z<-1for(iin1:x) {# This call can remain in your code; it is only activated when the debug mode is switched on dwatch(crit="z > 40000",objs= c("z"))z<-z*i }invisible(z)}# Turn debug mode ondebugr_switchOn()# Call function for debuggingmyfunction(10)