Learn R Programming

unsum (version 0.2.0)

closure_write: Write CLOSURE results to disk (and read them back in)

Description

You can use closure_write() to save the results of closure_generate() on your computer. A message will show the exact location.

The data are saved in a new folder as four separate files, one for each tibble in closure_generate()'s output. The folder is named after the parameters of closure_generate().

closure_read() is the opposite: it reads those files back into R, recreating the original CLOSURE list. This is useful for later analyses if you don't want to re-run a lengthy closure_generate() call.

Usage

closure_write(data, path)

closure_read(path)

Value

closure_write() returns the path to the new folder it created, closure_read() returns a list.

Arguments

data

List returned by closure_generate().

path

String (length 1). File path where closure_write() will create a new folder with the results. Set it to "." to choose the current working directory. For closure_read(), the path to an existing folder with results.

Folder name

The new folder's name should be sufficient to recreate its CLOSURE results. Dashes separate values, underscores replace decimal periods. For example:

CLOSURE-3_5-1_0-90-1-5-up_or_down-5

The order is the same as in closure_generate():


  closure_generate(
    mean = "3.5",
    sd = "1.0",
    n = 90,
    scale_min = 1,
    scale_max = 5,
    rounding = "up_or_down",  # default
    threshold = 5             # default
  )
 

Details

closure_write() saves the first three tibbles as CSVs, but the "results" tibble becomes a Parquet file. This is much faster and takes up far less disk space --- roughly 1% of a CSV file with the same data. Speed and disk space can be relevant with large result sets.

Use closure_read() to recreate the CLOSURE list from the folder. One of the reasons why it is convenient is that opening a Parquet file requires a special reader. For a more general tool, see nanoparquet::read_parquet().

Examples

Run this code
data <- closure_generate(
  mean = "2.7",
  sd = "0.6",
  n = 45,
  scale_min = 1,
  scale_max = 5
)

# You should write to a real folder instead;
# or just leave `path` unspecified. I use a
# fake folder just for this example.
path_new_folder <- closure_write(data, path = tempdir())

# In a later session, conveniently read the files
# back into R. This returns the original list,
# identical except for floating-point error.
closure_read(path_new_folder)

Run the code above in your browser using DataLab