Как автоматически загружать пакеты в R?
Не могли бы вы предложить мне способ автоматической загрузки пакетов в R? Я имею в виду, я хочу начать сеанс в R без необходимости использовать library('package name')
несколько раз. Предположим, я скачал все пакеты, которые хочу использовать при следующем запуске R.
4 ответа
Положил library(foo)
в вашем .Rprofile
файл или набор R_DEFAULT_PACKAGES
: увидеть ?Rprofile
...
В частности (потому что ?Rprofile
это долго и потенциально пугающе)
Если вы хотите, чтобы при запуске набор пакетов отличался от пакетов по умолчанию, вставьте вызов 'options' в файл.Rprofile или Rprofile.site. Например, "options(defaultPackages = character())" не добавит дополнительные пакеты при запуске (только "базовый" пакет) (или установит "R_DEFAULT_PACKAGES=NULL" в качестве переменной среды перед запуском R). Использование 'options(defaultPackages = "") "или" R_DEFAULT_PACKAGES=""' обеспечивает применение системы R по умолчанию.
Поскольку вы, вероятно , хотите, чтобы все пакеты по умолчанию были загружены, а затем добавлены дополнительные (вместо того, чтобы, скажем, не загружать некоторые пакеты по умолчанию), вы можете поместить
library("mypackage1")
library("mypackage2")
[etc.]
или используя options(defaultPackages=...)
:
options(defaultPackages=c(getOption("defaultPackages"),
"mypackage1","mypackage2", ... [etc.]))
в вашем .Rprofile
добавить желаемые пакеты к стандартным настройкам по умолчанию.
редактировать (скопировать из комментария), чтобы заставить его работать в Rstudio: http://rstudio.org/docs/using/workspaces предполагает, что Rstudio выполняет .Rprofile
а затем "выполняет другие действия, описанные в запуске R [ http://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html ]" (то же самое, что ?Rprofile
). Сомнительно ли это Rprofile.site
или нет.
edit # 2: согласно комментарию ниже, он работает с последней версией Rstudio.
Существует файл с именем.Rprofile, который представляет собой не что иное, как скрипт, который запускается каждый раз, когда вы начинаете новый сеанс R.
Что вам нужно сделать, это добавить library(package)
к этому. Если вы используете Unix, он, вероятно, находится в вашей домашней папке как скрытый файл.
Страница Quick-R по настройке запуска R в основном содержит ту же информацию, что и в ответах Бена и Жоао, но, возможно, немного понятнее. Создать копию Rprofile.site
файл с желаемыми изменениями в вашей домашней папке (Documents on Windows) и назовите его .Rprofile
РЕДАКТИРОВАТЬ: я заметил, что R 3.0.0 больше не смотрит из папки "Документы", но использует домашний каталог пользователя (имя пользователя) под Windows 7. Это может быть проблема установки, хотя (то есть, что я случайно установил R "неправильно") ранее). Однако страница Quick-R, ссылка на которую содержится в этом ответе, говорит о том, как это сделать. Если кто-то еще сталкивается с этой проблемой, решение состоит в том, чтобы скопировать .Rprofile
в домашний каталог пользователя.
Быстрый ответ заключается в том, что вы должны поместить свои пакеты R в .Rprofile
файл, как все предложили.
Однако обратите внимание, что R прочитает этот файл, а затем загрузит базовые пакеты R. Смотрите из ? Запуск:
Обратите внимание, что при получении файлов сайта и профиля пользователя загружается только базовый пакет,
Это может вызвать проблемы, если пакет, который вы хотите загрузить, улучшает / перезаписывает некоторые базовые функции R. Смотрите, например, с помощью tidyverse:: filter: https://github.com/tidyverse/dplyr/issues/1611
Пока я вижу два решения:
использование
.First.sys()
на первой строке вашего.Rprofile
file: это команда, которая обычно запускается после чтения.Rprofile и загружает пакеты вgetOption("defaultPackages")
,Обновите опцию defaultPackages: не использовать
library()
в вашем.Rprofile, но как-то так.old <- getOption("defaultPackages") options(defaultPackages = c(old, "tidyverse"))