Get results out, and get the same answer next year

Writing results back, exporting for the paper, and keeping the run reproducible

Not yet written. The structure below is settled; the prose is not. The reproducibility sections will ship with open questions rather than an invented workflow.

Writing results back

To a volume, or to a table, and which to choose.

The deciding fact: a volume takes anything file-shaped and a table is for what will be queried again. The trap on the table route is a size limit that arrives as a hard error rather than a slowdown, above roughly 50,000 rows without a staging volume, so the page should name it here as well as in Sending things to where your code runs.

Figures and tables out, for the paper

Three places your library state has to match

Your session, the worker, and any scheduled run.

The point is that these are three separate environments that look like one, and a result reproduced in two of them can still fail in the third. A scheduled run is the one most likely to drift, because nobody is watching it fail.

Recording the environment so the run can be repeated

Whether renv behaves usefully across the driver and worker boundary is open. This page will say what is known and no more.

The state to record honestly: renv is the right tool in her own session and the question is what it does at the boundary. The page should not invent a workflow to fill the gap. An open question stated plainly is worth more to her than a recipe that has not been run.

Publishing and scheduling

Citing the data

See The data and its licences. The two licences are different, and the difference matters. Environmental agency data is OGL v3.0; the storm overflow locations are CC BY 4.0, which requires its own credit line rather than sharing the other’s.

If a page uses the river network data, that carries a third set of attribution wording, different again from both.


This page rests on: every R context gets its own ephemeral library, so installs do not persist between contexts; a prebuilt library tree on a volume can be reused; dbWriteTable() hard errors above 50,000 rows without a staging volume.