Есть ли способ сохранить переменные в режиме отладчика в глобальную среду?

#r #debugging #global-variables

#r #отладка #глобальные переменные

Вопрос:

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

Я знаю, как это сделать для одной переменной. Например. если я хочу сохранить df :

 df <<- df
  

Есть ли способ сохранить все переменные?

Ответ №1:

Вы можете использовать комбинацию *apply() , ls() и assign() . В новом сеансе R я создал следующую функцию:

 f <- function() {
    x <- 1
    y <- 2
    z <- 3
    return(x   y   z)
}

ls()
# [1] "f"
  

Затем я запустил, f() используя debug() , и непосредственно перед return() инструкцией выполнил следующее из консоли:

 lapply(ls(), function(o) assign(x = o, value = get(o), envir = .GlobalEnv))
  

Затем, после завершения выполнения функции, проверил мою глобальную среду:

 ls()
# [1] "f" "x" "y" "z"