Menu Home

Announcing the wrapr packge for R

Recently Dirk Eddelbuettel pointed out that our R function debugging wrappers would be more convenient if they were available in a low-dependency micro package dedicated to little else. Dirk is a very smart person, and like most R users we are deeply in his debt; so we (Nina Zumel and myself) listened and immediately moved the wrappers into a new micro-package: wrapr.

WrapperImage: Friedensreich Hundertwasser

wrapr is a deliberately limited package. It does two things:

  1. It supplies R argument capture function debug wrappers (previously distributed in WVPlots and replyr). We have a short introduction here. We have also snuck in some improvements in how results are written back (detailed in the vignette).
  2. It supplies the “let” execution macro (previously distributed in replyr). “let” wraps convenient “non-standard name capture” interfaces into easier to program over “standard or parametric interfaces.” We have a short introduction here.

Future versions of replyr and WVPlots will re-export these functions. This means going forward there will be only one version of these functions, yet older code written against them should continue to work (in particular: all of our previous writing and videos demonstrating the methods).

Both of the wrapr techniques (let-wrapping and debug-wrapping) are quite powerful and can greatly speed up your ability to write and debug R code. Please give these methods a try, and also please tell others about the wrapr package.

Categories: Administrativia

Tagged as:


Data Scientist and trainer at Win Vector LLC. One of the authors of Practical Data Science with R.

5 replies

    1. Honest answer is: I had not heard of errorizer, but as you say the functionality looks similar (as we are using similar R tools). First look it appears errorizer does much more with function arguments.

      It looks like errorizer was first on CRAN 2016-11-06 and first on Github Nov 3, 2016. The wrapr debug functions were first on CRAN 2017-01-17 (in the package WVPlots) and had been public on Github since Apr 8 2016 (again in the package WVPlots as DebugPlot) with a public video on Apr 9 2016, and blog post about the technique at that time. The wrapping operator idea was from Nassim Haddad on Apr 11 2016. Though obviously the errorizer function may have been another one of your public packages earlier.

      I am assuming independent invention, especially as we treat function arguments differently.

      In both cases the debug functionality rehashes some of the capabilities of dump.frames (though there are differences).

  1. Good choice to break it out into it’s own package.

    It’s quite funny I wrote something very similar to wrapr::DebugFnW in 2012 but couldn’t open source it since it’s my employers code :(