Я пытаюсь подключить несколько окружений с помощью цикла.
env.a <- new.env()
env.b <- new.env()
env.c <- new.env()
attach(env.a)
search()
[1] ".GlobalEnv" "env.a" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
detach(env.a)
# Now do it in a loop
for (e in c("env.a", "env.b", "env.c")) {
+ if (!e %in% search()) { attach(get(e)) }
+ }
search()
[1] ".GlobalEnv" "get(e)" "get(e)"
[4] "get(e)" "package:stats" "package:graphics"
[7] "package:grDevices" "package:utils" "package:datasets"
[10] "package:methods" "Autoloads" "package:base"
Как показано в приведенном выше примере, это работает, если только одна переменная присоединена.Когда я использую цикл, чтобы присоединить их один за другим, все они будут названы get(e)
в пути поиска.Однако, если я не использую get(e)
, это приведет к ошибке.
for (e in c("env.a", "env.b", "env.c")) {
+ if (!e %in% search()) { attach(e) }
+ }
Error in attach(e) : file 'env.a' not found
Кто-нибудь знает правильный способ сделать это?Спасибо,