View source: R/expandTemplate.R
expandTemplate | R Documentation |
rmake
variables with their valuesThe functionality of expandTemplate()
differs accordingly to the type of the first argument.
If the first argument is a template job (i.e., a list of template rules), or a template rule,
then a job is created from templates by replacing rmake
variables in templates with values
of these variables, as specified in the second argument.
The rmake
variable is a part of a string in the format
of $[VARIABLE_NAME]
.
expandTemplate(template, vars)
template |
An instance of the S3 |
vars |
A named character vector, matrix, or data frame with variable definitions. For character vector, names are variable names, values are variable values. For matrix or data frame, colnames are variable names and column values are variable values. |
If vars
is a character vector then all variables in vars
are replaced in template
so that
the result will contain length(template)
rules. If vars
is a data frame or a character
matrix then the replacement of variables is performed row-wisely. That is, a new sequence of rules is
created from template
for each row of variables in vars
so that the result will contain
nrow(vars) * length(template)
rules.
If the first argument of expandTemplate()
is a character vector then the result is a character
vector created by row-wise replacements of rmake
variables, similarly as in the case of template jobs.
See examples.
If template
is an instance of the S3 rmake.rule
class, or a list of such objects,
a list of rules created from template
by replacing rmake
variables is returned.
If template
is a character vector then a character vector with all variants of rmake
values
is returned.
Michal Burda
replaceVariables()
, rule()
# Examples with template jobs and rules: tmpl <- rRule('data-$[VERSION].csv', 'process-$[TYPE].R', 'output-$[VERSION]-$[TYPE].csv') job <- expandTemplate(tmpl, c(VERSION='small', TYPE='a')) # is equivalent to job <- list(rRule('data-small.csv', 'process-a.R', 'output-small-a.csv')) job <- expandTemplate(tmpl, expand.grid(VERSION=c('small', 'big'), TYPE=c('a', 'b', 'c'))) # is equivalent to job <- list(rRule('data-small.csv', 'process-a.R', 'output-small-a.csv'), rRule('data-big.csv', 'process-a.R', 'output-big-a.csv'), rRule('data-small.csv', 'process-b.R', 'output-small-b.csv'), rRule('data-big.csv', 'process-b.R', 'output-big-b.csv'), rRule('data-small.csv', 'process-c.R', 'output-small-c.csv'), rRule('data-big.csv', 'process-c.R', 'output-big-c.csv')) # Examples with template character vectors: expandTemplate('data-$[MAJOR].$[MINOR].csv', c(MAJOR=3, MINOR=1)) # returns: c('data-3.1.csv') expandTemplate('data-$[MAJOR].$[MINOR].csv', expand.grid(MAJOR=c(3:4), MINOR=c(0:2))) # returns: c('data-3.0.csv', 'data-4.0.csv', # 'data-3.1.csv', 'data-4.1.csv', # 'data-3.2.csv', 'data-4.2.csv')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.