Call this function as the last line in job::job()
to select what is exported
back into globalenv()
. export()
does nothing if called in any other context.
export(value = "changed", file = NULL)
What to return. One of:
"all"
: Return everything, including imports
"changed"
(default): Return all variables that are not identical to import.
"new"
: Return only new variable names.
c(var1, var2, ...)
: Return these variable names.
NULL
or "none"
: Return nothing. This is particularly useful for unnamed code chunks.
Name of .RData
file to export to. If not NULL
, nothing will be returned
to the main session (corresponding to export("none")
).
NULL
invisibly.
Under the hood, this function merely rm()
variables that does not match value
.
Because job::job()
returns everything at the end of the script, this defines
what is returned.
if (rstudioapi::isAvailable()) {
a = 55
b = 77
d = 88
job::job({n = 11; a = 55; job::export("all")}) # export a, b, d, n
job::job({n = 11; a = 11; job::export("changed")}) # export a, n
job::job({n = 11; a = 11; job::export("new")}) # export n
job::job({n = 11; a = 55; job::export(c(a, d, b))}) # export a, d, b
job::job({n = 11; a = 55; job::export("none")}) # export nothing
# To file
job::job({n = 11; a = 11; job::export("changed", file = "jobresult.RData")}) # save a, n
jobresult = new.env() # import to this env instead of global
load("jobresult.RData", envir = jobresult)
print(jobresult$n)
}