Я пытаюсь поместить что-то в CRAN, что позволяет пользователю манипулировать реактивными блестящими объектами, создавая аналогичный объект stati c на пути поиска. Я знаю, что не могу писать в глобальную среду (что она в данный момент делает), но я не уверен, как позволить объектам сохраняться после выполнения функции.
store_it <- function() {
env <- new.env()
assign("x", runif(10), env)
assign("iris_df", head(iris), env)
# View(env)
env
}
# how I want to use it, doesn't work
store_it() # <environment: 0x0000012bd8959cb0>
x # Error: object 'x' not found
iris_df # Error: object 'iris_df' not found
# works
e <- attach(store_it())
x
iris_df
Она делает то, что я хочу, но я не не похоже, что он добавляет среды к пути поиска:
e <- attach(store_it())
# The following objects are masked from store_it() (pos = 3):
# iris_df, x
e <- attach(store_it())
# The following objects are masked from store_it() (pos = 4):
# iris_df, x
e <- attach(store_it())
# The following objects are masked from store_it() (pos = 5):
# iris_df, x
Какой правильный способ сделать это? Я бы хотел, чтобы пользователь просто написал store_it()
. Если attach()
- верный путь, как мне поместить его в функцию, чтобы он не создавал новые среды? Помните, что решение должно соответствовать политике CRAN. Заранее спасибо.
Примечание: кто-то, вероятно, укажет, что я задавал подобный вопрос в прошлом. Я сделал новое сообщение, потому что этот вопрос более конкретен c. Пакетная обработка среды и отправка в CRAN