Skip to contents

rxp_r Creates a Nix expression running an R function

Usage

rxp_r(name, expr, additional_files = "", nix_env = "default.nix")

Arguments

name

Symbol, name of the derivation.

expr

R code to generate the expression.

additional_files

Character vector, additional files to include. Custom functions must go into a script called "functions.R", and additional files that need to be accessible during the build process can be named anything.

nix_env

Character, path to the Nix environment file, default is "default.nix".

Value

A list with elements: name, the name of the derivation, snippet, the Nix boilerplate code, type, additional_files and nix_env.

Details

At a basic level, rxp_r(mtcars_am, filter(mtcars, am == 1)) is equivalent to mtcars <- filter(mtcars, am == 1). rxp_r() generates the required Nix boilerplate to output a so-called "derivation" in Nix jargon. A Nix derivation is a recipe that defines how to create an output (in this case mtcars_am) including its dependencies, build steps, and output paths.

Examples

rxp_r(mtcars_am, filter(mtcars, am == 1))
#> $name
#> [1] "mtcars_am"
#> 
#> $snippet
#> [1] "  mtcars_am = makeRDerivation {\n    name = \"mtcars_am\";\n    buildInputs = defaultBuildInputs;\n    configurePhase = defaultConfigurePhase;\n    buildPhase = ''\n      Rscript -e \"\n        source('libraries.R')\n        mtcars_am <- filter(mtcars, am == 1)\n        saveRDS(mtcars_am, 'mtcars_am.rds')\"\n    '';\n  };"
#> 
#> $type
#> [1] "rxp_r"
#> 
#> $additional_files
#> [1] ""
#> 
#> $nix_env
#> [1] "default.nix"
#>