R расширение записи локальных данных
Я создаю пакет и хотел бы хранить данные о настройках локально, поскольку они уникальны для каждого пользователя пакета и поэтому нет необходимости устанавливать эти параметры при каждой загрузке пакета.
Как я могу сделать это наилучшим образом?
1 ответ
Вы можете сохранить необходимые данные в объекте и сохранить его, используя saveRDS()
всякий раз, когда вносится изменение или когда пользователь покидает или дает команду на сохранение. Это сохраняет объект R, поскольку это находится под именем файла в указанном пути.
saveRDS(<obj>, "path/to/filename.rds")
И вы можете загрузить его в следующий раз, когда пакет начинает использовать loadRDS()
, Хорошая вещь loadRDS()
является то, что вы можете назначить новое имя для объекта. (Так что вам не нужно запоминать его старое имя объекта. Однако старое имя объекта также загружается вместе с объектом и в конечном итоге загрязнит ваше пространство имен.
newly.assigned.name <- loadRDS("path/to/filename.rds")
# or also possible:
loadRDS("path/to/filename.rds") # and use its old name
Где хранить
Windows
Может быть здесь:
Для этого вы можете использовать переменную окружения%systemdrive%%homepath%.
При объединении двух переменных команды вы получите путь к домашнему каталогу нужного пользователя, как показано ниже:
Запуск echo %systemdrive% в командной строке дает:
C:
Запуск echo %homepath% в командной строке дает:
\ Users \
Когда используется вместе это становится:
C:\Users\
Linux / OSX
Либо в расположении пакета пользователя,
path.to.package <- find.package("name.of.your.pacakge",
lib.loc = NULL, quiet = FALSE,
verbose = getOption("verbose"))
# and then construct with
destination.folder.path <- file.path(path.to.package,
"subfoldername", "filename")`
# the path to the final destination
# You should use `file.path()` to construct such paths, because it detects automatically the correct ('/' or '\') separators for the file paths in Unix-derived systems (Linux/Mac Os X) versus Windows.
Или используйте переменную $HOME пользователя и там в файле - имя которого начинается с "." - это соглашение в Unix-системах (Linux/Mac OS X) для такого типа файлов, которые сохраняют конфигурации программ. например, ".your-packages-name.rds".
Если у кого-то есть лучшее решение, пожалуйста, помогите!