Statistics, Department of

 

The R Journal

Date of this Version

6-2021

Document Type

Article

Citation

The R Journal (June 2021) 13(1); Editor: Dianne Cook

Comments

Copyright 2021, The R Foundation. Open access material. License: CC BY 4.0 International

Abstract

It is often useful to tap information from a running R script. Obvious use cases include monitoring the consumption of resources (time, memory) and logging. Perhaps less obvious cases include tracking changes in R objects or collecting the output of unit tests. In this paper, we demonstrate an approach that abstracts the collection and processing of such secondary information from the running R script. Our approach is based on a combination of three elements. The first element is to build a customized way to evaluate code. The second is labeled local masking and it involves temporarily masking a user-facing function so an alternative version of it is called. The third element we label local side effect. This refers to the fact that the masking function exports information to the secondary information flow without altering a global state. The result is a method for building systems in pure R that lets users create and control secondary flows of information with minimal impact on their workflow and no global side effects

Share

COinS