Как гарантировать, что функция r вернет объект, если он завершится по какой-либо причине? - PullRequest
0 голосов
/ 18 июня 2020

Существует объект, который должен быть возвращен функцией независимо от того, почему она завершилась.

Например, пока эта функция запущена, я нажимаю красную кнопку в правом верхнем углу Rstudio, чтобы заставить ее прекратить. В этой ситуации функция также должна возвращать объект.

Я помню, что было что-то вроде функции «on.exist», которая что-то делает, когда функция существует. не могу вспомнить.

1 Ответ

0 голосов
/ 18 июня 2020

Вы не можете использовать on.exit для этой цели, но вы можете просто записать любые промежуточные вычисления, чтобы, если функция остановлена, вы все равно рассчитали последнее значение. В качестве альтернативы вы можете записать его в файл, и в этом случае он будет у вас, даже если R или компьютер выйдет из строя.

# test function
f <- function() {
    for(i in 1:100) { 
      x <<- i
      Sys.sleep(10)
    }
    i
}

x <- NULL
x <- f()
# press red button before it finishes
x  # last value it calculated
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...