В R я могу сохранить загруженные пакеты с рабочей областью? - PullRequest
6 голосов
/ 19 августа 2011

R обычно сохраняет объекты только в .GlobalEnv:

$ R
> library(rjson)
> fromJSON
function (...) ...
> q(save='yes')
$ R
> fromJSON
Error: object 'fromJSON' not found

Можно ли также сохранить эту информацию?

Ответы [ 4 ]

5 голосов
/ 19 августа 2011

Насколько мне известно, нет.Рабочая область предназначена для объектов , таких как данные и функции.Запуск R с конкретными загруженными пакетами - это то, для чего нужен ваш файл .Rprofile, и у вас может быть свой файл в каждом каталоге.

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

4 голосов
/ 22 июля 2016

Теперь вы можете сохранить информацию о сеансе R в файл и загрузить ее в другой сеанс.

Сначала установите пакет "session":

install.packages('session')

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

library(session)
library(ggplot2) # plotting

test <- 100

save.session(file='test.Rda')

Затем вы можете загрузить состояние сеанса в другой сеанс:

library(session)

restore.session(file='test.Rda')

#ggplot2 (and associated data) should have loaded with the session data
head(diamonds)
ggplot(data = diamonds, aes(x = carat)) +
  geom_histogram()

print(test)

Ссылка: https://www.rdocumentation.org/packages/session/versions/1.0.3/topics/save.session

2 голосов
/ 19 августа 2011

Я бы порекомендовал не сохранять ничего между r сессиями, а вместо этого воссоздавать все это с помощью кода. Это гораздо более вероятно приведет к воспроизводимым результатам.

2 голосов
/ 19 августа 2011

Джоран прав, но я хочу упомянуть технику, которая, хотя и громоздка, может быть полезна.

Вы можете использовать программу контрольных точек, такую ​​как DMTCP , чтобы сохранить весь процесс R и перезапустить его позже.

...