batchMapResults {batchtools} | R Documentation |
Map Over Results to Create New Jobs
Description
This function allows you to create new computational jobs (just like batchMap
based on the results of
a Registry
.
Usage
batchMapResults(
fun,
ids = NULL,
...,
more.args = list(),
target,
source = getDefaultRegistry()
)
Arguments
fun |
[ |
ids |
[ |
... |
[ANY] |
more.args |
[ |
target |
[ |
source |
[ |
Value
[data.table
] with ids of jobs added to target
.
Note
The URI to the result files in registry source
is hard coded as parameter in the target
registry.
This means that target
is currently not portable between systems for computation.
See Also
Other Results:
loadResult()
,
reduceResultsList()
,
reduceResults()
Examples
# Source registry: calculate square of some numbers
tmp = makeRegistry(file.dir = NA, make.default = FALSE)
batchMap(function(x) list(square = x^2), x = 1:10, reg = tmp)
submitJobs(reg = tmp)
waitForJobs(reg = tmp)
# Target registry: calculate the square root on results of first registry
target = makeRegistry(file.dir = NA, make.default = FALSE)
batchMapResults(fun = function(x, y) list(sqrt = sqrt(x$square)), ids = 4:8,
target = target, source = tmp)
submitJobs(reg = target)
waitForJobs(reg = target)
# Map old to new ids. First, get a table with results and parameters
results = unwrap(rjoin(getJobPars(reg = target), reduceResultsDataTable(reg = target)))
print(results)
# Parameter '.id' points to job.id in 'source'. Use a inner join to combine:
ijoin(results, unwrap(reduceResultsDataTable(reg = tmp)), by = c(".id" = "job.id"))