
This function allows you to create new computational jobs (just like batchMap
based on the results of
a Registry
.
batchMapResults(fun, ids = NULL, ..., more.args = list(), target,
source = getDefaultRegistry())
[function
]
Function which takes the result as first (unnamed) argument.
[data.frame
or integer
]
A data.frame
(or data.table
)
with a column named “job.id”.
Alternatively, you may also pass a vector of integerish job ids.
If not set, defaults to the return value of findDone
.
Invalid ids are ignored.
[ANY]
Arguments to vectorize over (list or vector). Passed to batchMap
.
[list
]
A list of further arguments passed to fun
.
Default is an empty list.
[Registry
]
Empty Registry where new jobs are created for.
[Registry
]
Registry. If not explicitly passed, uses the default registry (see setDefaultRegistry
).
[data.table
] with ids of jobs added to target
.
Other Results: loadResult
,
reduceResultsList
,
reduceResults
# NOT RUN {
# 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"))
# }
Run the code above in your browser using DataLab