This report documents the process of debugging a problem with the recording and replaying of R plots from one R session to another. The purpose of this report is to record the source of the problem, to record the solution to the problem, to explain some of the internal details of recorded R plots, and to demonstrate the ‘hexView’ package for exploring binary blobs.
In the development version of R (to be R 3.3.0), it is possible again to save the result of recordPlot() from one R session and then load it and replay it, with replayPlot(), in a different R session. This recording and replaying of R plots across R sessions has also been made safer, with more warnings and errors in place to protect against incompatibilities between R versions, and it has been made better, with support for reloading packages along with a “recordedplot”, and with support for reproducing the ‘grid’ display list when redrawing a “recordedplot” that contains ‘grid’ output.
Paul Murrell, Jeroen Ooms, JJ Allaire
The ‘safemode’ package provides a safemode() function that creates a “safe mode” session in R. In “safe mode”, all symbols have an “age” (a last-modified time stamp) and a set of dependent symbols, and a warning is issued whenever a symbol is used in an expression and its age exceeds the age of any of its dependents (i.e., there is warning whenever a “stale” symbol is used in an expression).
This document describes several different techniques for including SVG images within a web page and points out the important SVG attributes that control the final appearance of the SVG image within the web page. The document then describes how to control those attributes when generating SVG images with the ‘gridSVG’ package for R.
The National Climate Database contains data collected from around
6,500 weather stations throughout New Zealand, providing a necessary
repository for any study involving New Zealand’s weather or climate.
Although data from this database can be accessed via a web portal (CliFlo),
the vast amount of information is not readily consumable. The clifro
R package provides the necessary functions to easily integrate the
National Climate Database with R, and provides a variety of elegant plotting
methods for data exploration. Also, by supplying functions to access the
database via CliFlo programmatically, clifro allows for transparent and
reproducible research when using these data.
Blake M. Seers and Nick T. Shears
The gridGraphics package provides a function, grid.echo(), that can be used to convert a plot drawn with the graphics package to the same result drawn using grid. This provides access to a variety of grid tools for making customisations and additions to the plot that are not possible with the graphics package.
Reproducible documents provide an efficient way to produce reports by automatically generating content from code chunks within the report. The processing of a source document, that contains code chunks, to a final document, that contains automatically-generated content, is typically one way, with the resulting report being read-only. This report describes an experiment that attempts to make the final report document modifiable and attempts to invert the process from final document back to source document so that the modifications to the final document can be efficiently conveyed back to the original author of the report.
Eric Lim, Paul Murrell, and Finlay Thompson
The gridGraphviz package renders node-and-edge graphs in R using the grid graphics package. Graphs are laid out using the Rgraphviz package to interface with the graph layout algorithms in graphviz. This article details the improvements made between gridGraphviz versions 0.2 and 0.3, including: support for “ellipse”- and “polygon”-shaped nodes; handling of edges in undirected graphs; support for various new arrow types; and support for edge labels. Version 0.3 also introduces a method to produce graphs with an overall size closer to graphviz’s output.
Ashley Noel Hinton and Paul Murrell
TableToLongForm automatically converts hierarchical Tables
intended for a human reader into a simple LongForm Dataframe that is
machine readable, hence enabling much greater utilisation of the data.
It does this by recognising positional cues present in the hierarchical
Table (which would normally be interpreted visually by the human brain)
to decompose, then reconstruct the data into a LongForm Dataframe. The
article motivates the benefit of such a conversion with an example
Table, followed by a short user manual, which includes a comparison
between the simple one argument call to TableToLongForm, with code for
an equivalent manual conversion. The article then explores the types of
Tables the package can convert by providing a gallery of all recognised
patterns. It finishes with a discussion of available diagnostic methods
and future work.
The grImport2 package imports vector images that are stored in the SVG image format for inclusion within images generated by R. The original grImport package performs the same task, but instead using PostScript images as its source image format. This technical report describes the steps taken to improve not only the grImport package, but also follows the development of two new packages, grImport2 and grConvert. The latter, grConvert, converts images from popular vector image formats (PostScript, PDF and SVG) into valid input formats for grImport and grImport2. The grImport2 package is an entirely new package that does not suffer from some limitations of the grImport package, whose limitations are primarily due to the dependence on the PostScript image format.
Simon Potter and Paul Murrell