rxp_r Creates a Nix expression running an R function
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"
#>