save (list = ls ()) Внутренняя функция не работает с назначением переменных - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь использовать ls () с переменными, которые я перенес в среду функции из родительской функции или из глобальной среды.Я видел это:

Как искать среду, используя ls () внутри функции?

И это:

rm(list = ls ()) не работает внутри функции.Почему?

Но у меня все еще есть эта проблема: мой вызов ls () не возвращает переменные assign , которые, как я знаю, находятся внутри среды этой функции.Я не пытаюсь получить глобальную среду, я хочу среду своей функции.Чего мне не хватает?

g = function() {
  e = environment()
  get("f",envir = parent.env(e))
  print(f)
  save(list=ls(envir = e),file = "U:/GitHub/FunctionDebug.RData")
}

h = function() {
  g()
}

f <- 1
h()

[1] 1 # So I know that my variable is seen by the function!

Когда я вызываю загрузить файл обратно в мой Global Env, я получаю пустое пространство имен (кроме e, функциональную среду. Это происходит только для переменных, которые я назначилиз окружения другой функции. Почему?

load("U:/GitHub/FunctionDebug.RData")
> ls()
[1] "e"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...