Обновление существующего файла Rdata

Я обнаружил, что мне нужно обновить один или два объекта данных в файле Rdata, ранее созданном с помощью save. Если я не буду внимательно загружать файл, я могу забыть повторно -сохранить некоторые объекты в файле. Например, я работаю над пакетом с некоторыми объектами, хранящимися в sysdata.rda(. просмотрите -таблицы для внутреннего использования, которые я не хочу экспортировать )и хочу беспокоиться только об обновлении отдельных объектов.

Мне не удалось выяснить, есть ли стандартный способ сделать это, поэтому я создал свою функцию.

resave <- function (..., list = character(), file = stop("'file' must be specified")) {
  # create a staging environment to load the existing R objects
  stage <- new.env()
  load(file, envir=stage)
  # get the list of objects to be "resaved"
  names <- as.character(substitute(list(...)))[-1L]
  list <- c(list, names)
  # copy the objects to the staging environment
  lapply(list, function(obj) assign(obj, get(obj), stage))
  # save everything in the staging environment
  save(list=ls(stage, all.names=TRUE), file=file)
}

Хотя это кажется излишеством. Есть ли лучший/более простой способ сделать это?

Кстати, прав ли я, предполагая, что новая среда, созданная в области действия функции, уничтожается после вызова функции?

20
задан zx8754 11 July 2017 в 09:49
поделиться