Learn R Programming

TAF (version 4.3.0)

make: Run R Script if Needed

Description

Run an R script if underlying files have changed, otherwise do nothing.

Usage

make(recipe, prereq, target, include = TRUE, engine = source,
  details = FALSE, force = FALSE, recon = FALSE, quiet = TRUE, ...)

Value

TRUE or FALSE, indicating whether the script was run.

Arguments

recipe

script filename.

prereq

one or more files required by the script. For example, data files, scripts, or NULL.

target

one or more output files produced by the script. Directory names can also be used.

include

whether to automatically include the script itself as a prerequisite file. This means that if the script file has been modified, it should be run.

engine

function to source the script.

details

whether to show a diagnostic table of files and time last modified.

force

whether to run the R script unconditionally.

recon

whether to return TRUE or FALSE, without actually running the R script.

quiet

whether to suppress messages.

...

passed to engine.

Details

A make() call has the general form


make("analysis.R", "input.dat", "output.dat")

which can be read aloud as:

“script x uses y to produce z

References

Stallman, R. M. et al. An introduction to makefiles. Chapter 2 in the GNU Make manual.

See Also

source runs any R script, source.taf is more convenient for running a TAF script, and source.all runs all TAF scripts.

make, make.taf, and make.all are similar to the source functions, except they avoid repeating tasks that have already been run.

TAF-package gives an overview of the package.

The makeit package provides a similar make function, along with a vignette containing annotated examples and a discussion.

Examples

Run this code
if (FALSE) {
# Here, model.R uses input.dat, creating results.dat
make("model.R", "data/input.dat", "model/results.dat")
make("model.R", "data/input.dat", "model/results.dat", quiet=FALSE)
make("model.R", "data/input.dat", "model/results.dat", details=TRUE)
}

Run the code above in your browser using DataLab