[R] Source into a specified environment
G.Maubach at weinwolf.de
G.Maubach at weinwolf.de
Mon Jan 9 17:21:03 CET 2017
Hi All,
I wish everyone a happy new year.
I have the following code:
-- cut --
modules <- c("t_calculate_RFM_model.R", "t_count_na.R",
"t_export_table_2_xls.R",
"t_find_duplicates_in_variable.R",
"t_find_originals_and_duplicates.R",
"t_frequencies.R", "t_inspect_dataset.R",
"t_merge_variables.R",
"t_openxlsx_shortcuts.r", "t_rename_variables.R",
"t_select_chunks.R")
toolbox <- new.env(parent = emptyenv())
for (file in modules)
{
source(file = file.path(
c_path_full$modules, # path to modules
file),
echo = TRUE)
}
-- cut --
I would like to know how I can source the modules into the newly created
environment called "toolbox"?
I had a look at the help file for ?source but this function can read in
only in the current environment or the global environment (= default).
I tried also the following
-- cut --
for (file in modules))
{
do.call(
what = "source",
args = list(
file = file.path(c_path_full$modules,
file),
echo = TRUE
),
envir = toolbox
)
}
-- cut --
But this did not work, i. e. it did not load the modules into the
environment "toolbox" but into the .GlobalEnv.
I also had a look at "assign", but assign() askes for a name of an object
in quotes. This way I could not figure out how to use it in a loop or
function to name the element in "toolbox" after the modules names:
assign("t_add_sheet", t_add_sheet, envir = toolbox) # works
assign(quote(t_add_sheet), t_add_sheet, envir = toolbox) # does NOT work
assign(as.name(t_add_sheet), t_add_sheet, envir = toolbix) # does NOT
work
Is there a way to load the modules directly into the "toolbox"
environment?
Kind regards
Georg
More information about the R-help
mailing list