Как автоматически загружать пакеты в R?

Не могли бы вы предложить мне способ автоматической загрузки пакетов в R? Я имею в виду, я хочу начать сеанс в R без необходимости использовать library('package name') несколько раз. Предположим, я загрузил все пакеты, которые я хочу использовать при следующем запуске R.

4 ответов


поставить library(foo) в своем .Rprofile file или set R_DEFAULT_PACKAGES: см.?Rprofile ...

в частности (потому что ?Rprofile длинный и потенциально пугающим):

если вы хотите другой набор пакетов по умолчанию, когда вы запустите, вставьте вызов "options " в".Rprofile успешно или ‘Rprofile успешно.файл сайта. Например, ' options (defaultPackages = символ ()’ ' не будет прикреплять никаких дополнительных пакетов при запуске (только "базовый" пакет) (или набор ’ R_DEFAULT_PACKAGES=NULL ' в качестве среды переменная перед запуском R). Использование ' options (defaultPackages= "") ' или ‘R_DEFAULT_PACKAGES=" " ’ применяет R система по умолчанию.

возможно do хотите, чтобы все пакеты по умолчанию загружались, а затем дополнительные В дополнение (вместо того, чтобы, скажем, не загружать некоторые пакеты по умолчанию), вы можете либо поставить

library("mypackage1")
library("mypackage2")
[etc.]

или через options(defaultPackages=...):

options(defaultPackages=c(getOption("defaultPackages"),
       "mypackage1","mypackage2", ... [etc.]))

в вашей .Rprofile to добавить ваши нужные пакеты по стандартным умолчанию.

редактировать (скопировано из комментария), чтобы это работало в в RStudio: http://rstudio.org/docs/using/workspaces предполагает, что RStudio выполняет .Rprofile а затем " выполняет другие действия, описанные в R Startup [ http://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html ] "(что то же самое, что ?Rprofile). Это неоднозначно ли это выглядит Rprofile.site или нет.

правка #2: согласно комментарию ниже, он работает с последней версией Rstudio.


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

что вам нужно сделать, это добавить library(package) к нему. Если вы используете Unix, он, вероятно, находится в вашей домашней папке как скрытый файл.


страница Quick-R при настройке запуска R содержит в основном ту же информацию, что и в ответах Бена и Хуана, но, возможно, немного яснее. Создайте копию Rprofile.site файл с желаемыми изменениями в вашей домашней папке (Документы в Windows) и назовите его .Rprofile

EDIT: я заметил, что R 3.0.0 больше не смотрит из папки "документы", но использует домашний каталог пользователя (имя пользователя) под Windows 7. Это может быть проблема установки, хотя (т. е. что мне случилось установить R "неправильно" ранее). Однако страница Quick-R, связанная в этом ответе, указывает правильный способ сделать это. Если кто-то еще сталкивается с этой проблемой, решение состоит в том, чтобы скопировать .Rprofile в домашний каталог пользователя.


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

обратите внимание, однако, что R будет читать этот файл и затем загрузите базовые пакеты R. Смотрите из ?Startup:

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

это может вызвать проблемы, если пакет, который вы хотите загрузить, увеличивает / перезаписывает некоторую базу R функции. См., например, с tidyverse:: filter:https://github.com/tidyverse/dplyr/issues/1611

Я вижу два решения до сих пор:

  1. использовать .First.sys() в первой строке .Rprofile file: это команда, которая обычно запускается после чтения .Rprofile, который загружает пакеты в getOption("defaultPackages").

  2. измените параметр defaultPackages: не используйте library() в вашей .Rprofile успешно, но что-то вроде.

    old <- getOption("defaultPackages")
    options(defaultPackages = c(old, "tidyverse"))