Nothing
## ----tt-setup, include = FALSE------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 7,
fig.height = 5
)
library(rmake)
## ----task_ex, eval=FALSE------------------------------------------------------
# make('all')
# make('preview')
## ----task_assign, eval=FALSE--------------------------------------------------
# library(rmake)
# job <- c(
# "data.csv" %>>% rRule("preprocess.R") %>>% "data.rds",
# "data.rds" %>>% markdownRule("preview.Rmd", task = "preview") %>>%
# "preview.pdf",
# "data.rds" %>>% markdownRule("final.Rmd", task = "final") %>>%
# "final.pdf"
# )
# makefile(job, "Makefile")
## ----params_ex, eval=FALSE----------------------------------------------------
# library(rmake)
# job <- c(
# "data.csv" %>>% rRule("fit.R", params = list(alpha = 0.1)) %>>% "out-0.1.rds",
# "data.csv" %>>% rRule("fit.R", params = list(alpha = 0.2)) %>>% "out-0.2.rds",
# "data.csv" %>>% rRule("fit.R", params = list(alpha = 0.3)) %>>% "out-0.3.rds"
# )
# makefile(job, "Makefile")
## ----params_script, eval=FALSE------------------------------------------------
# # fit.R
# str(params)
# # List of 5
# # $ .target : chr "out-0.1.rds"
# # $ .script : chr "fit.R"
# # $ .depends: chr "data.csv"
# # $ .task : chr "all"
# # $ alpha : num 0.1
## ----getparam_ex, eval=FALSE--------------------------------------------------
# # fit.R
# library(rmake)
#
# dataName <- getParam(".depends")
# resultName <- getParam(".target")
# alpha <- getParam("alpha")
#
# # Use parameters...
# cat("Processing with alpha =", alpha, "\n")
## ----getparam_default, eval=FALSE---------------------------------------------
# dataName <- getParam(".depends", "data.csv")
# resultName <- getParam(".target", "result.rds")
# alpha <- getParam("alpha", 0.2)
## ----template_simple, eval=FALSE----------------------------------------------
# tmpl <- "data-$[NUM].csv" %>>%
# rRule("process.R") %>>%
# "result-$[NUM].csv"
# variants <- data.frame(NUM = 1:99)
# job <- expandTemplate(tmpl, variants)
## ----template_multi-----------------------------------------------------------
variants <- expand.grid(DATA = c("dataSimple", "dataComplex"),
TYPE = c("lm", "rf", "nnet"))
print(variants)
tmpl <- "$[DATA].csv" %>>%
rRule("fit-$[TYPE].R") %>>%
"result-$[DATA]_$[TYPE].csv"
job <- expandTemplate(tmpl, variants)
print(job)
## ----template_dup-------------------------------------------------------------
tmpl <- "data.csv" %>>%
rRule("pre.R") %>>% "pre.rds" %>>%
rRule("comp.R", params = list(alpha = "$[NUM]")) %>>%
"result-$[NUM].csv"
variants <- data.frame(NUM = 1:5)
job <- expandTemplate(tmpl, variants)
print(job)
## ----template_error, error=TRUE-----------------------------------------------
try({
tmpl <- "data-$[TYPE].csv" %>>%
markdownRule("report.Rmd") %>>% "report.pdf"
variants <- data.frame(TYPE = c("a", "b", "c"))
job <- expandTemplate(tmpl, variants)
print(job)
# This would error:
# makefile(job)
# Error: Multiple rules detected for the same target
})
## ----combined_ex, eval=FALSE--------------------------------------------------
# # Create template for different models
# tmpl <- "data.csv" %>>%
# rRule("fit-$[MODEL].R", params = list(model = "$[MODEL]")) %>>%
# "model-$[MODEL].rds"
#
# # Expand for different models
# variants <- data.frame(MODEL = c("linear", "rf", "xgboost"))
# training_job <- expandTemplate(tmpl, variants)
#
# # Add evaluation tasks
# eval_job <- c(
# c("model-linear.rds", "model-rf.rds", "model-xgboost.rds") %>>%
# rRule("evaluate.R") %>>% "evaluation.rds",
# "evaluation.rds" %>>%
# markdownRule("report.Rmd", task = "report") %>>% "report.pdf"
# )
#
# # Combine all rules
# job <- c(training_job, eval_job)
# makefile(job, "Makefile")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.