Мартин Мехлер предполагает, что это один раз, когда вы, возможно, захотите рассмотреть attach()
, хотя он предложил это в контексте присоединения файла .Rdata
к пути поиска, но ваш Q по сути то же самое.
Преимущество состоит в том, что вы не загромождаете глобальную среду функциями, которые могут быть случайно перезаписаны и т. Д. Хотя я бы не стал так далеко называть этот плохой стиль, вам лучше было бы придерживаться своих пользовательских функций ваш личный пакет R. Да, это потребует некоторых дополнительных затрат на настройку структуры пакета и предоставление некоторой документации, позволяющей установить пакет, но в долгосрочной перспективе это лучшее решение. С такими инструментами, как roxygen, этот процесс упрощается.
Лично я не нашел необходимости возиться со средами в течение 10 лет использования R; хорошо документированные скрипты, которые загружают, обрабатывают и анализируют данные, постоянно убирая за собой, до сих пор хорошо мне помогали.
Еще одно предложение для второй части вашего вопроса (теперь удалено) заключается в использовании with()
(в соответствии с примером @ Joshua):
> .myEnv <- new.env()
> .myEnv$a <- 2
> a <- 1
> str(a)
num 1
> ls.str(.myEnv, a)
a : num 2
> str(.myEnv$a)
num 2
> with(.myEnv, a)
[1] 2
> a
[1] 1