Используйте второй аргумент для source()
при выполнении сценария.Например, вот скрипт:
x <- y + 1
z <- 2
, который я могу вставить в script.R
.Затем я выполню его в собственной среде, используя следующий код:
x <- 1 # This value will *not* change
y <- 2 # This value will be visible to the script
env <- new.env()
source("script.R", local = env)
Теперь я могу напечатать значения и убедиться, что комментарии верны
x # the original one
# [1] 1
ls(env) # what was created?
# [1] "x" "z"
env$x # this is the one from the script
# [1] 3