MyNixOS website logo
Description

Track Changes in Data.

A framework that allows for easy logging of changes in data. Main features: start tracking changes by adding a single line of code to an existing script. Track changes in multiple datasets, using multiple loggers. Add custom-built loggers or use loggers offered by other packages. <doi:10.18637/jss.v098.i01>.

A brief overview of lumberjack

Lumberjack separates concerns between data processing and monitoring the process by allowing R programmers (analysts) to declare what objects to track, and how to track them.

Add logging capabilities to existing analyses scripts

Start tracking changes by adding a single line of code to an existing script.

# contents of 'script.R'

mydata <- read.csv("path/to/my/data.csv")

# add this line after reading the data:
start_log(mydata, logger=simple$new())

# Existing data analyses code here...

Next, run the script using lumberjack::run_file(), and read the logging info.

library(lumberjack)
run_file("script.R")

read.csv("mydata_simple.csv")

Every aspect of the logging process can be customized, including output file locations and the logger.

Interactive logging with the lumberjack not-a-pipe operator.

out <- mydata %L>%
  start_log(logger = simple$new()) %L>%
  transform(z = 2*sqrt(x)) %L>%
  dump_log(file="mylog.csv")
read.csv("mylog.csv")

Loggers included with lumberjack

loggerdescription
simpleRecord whether data has changed or not
cellwiseRecord every change in every cell
expression_loggerRecord the value of user-defined expressions
filedumpDump data to file after each change.

Extend with your own loggers

A logger is a reference object (either R6 or Reference Class) with the following mandatory elements.

  • add(meta, input, output) A method recording differences between in- and output.
  • dump(...) A method dumping logging info.
  • label, A slot for setting a label.

There is also an optional element:

  • stop(...) A method that will be called before removing a logger.

More information

install.packages("lumberjack")
library(lumberjack)
vignette("using_lumberjack", package="lumberjack")
Metadata

Version

1.3.1

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows