Не могли бы вы предложить мне способ загрузки пакетов в R автоматически? Я хочу сказать, что я хочу начать сеанс в R без необходимости использовать library('package name')
несколько раз. Предположим, я скачал все пакеты, я хочу использовать в следующий раз, я начинаю Р.Как загрузить пакеты в R автоматически?
ответ
Поместите library(foo)
в файл .Rprofile
или установить R_DEFAULT_PACKAGES
: см ?Rprofile
...
В частности, (потому что ?Rprofile
долго и потенциально запугивая):
If you want a different set of packages than the default ones when you start, insert a call to ‘options’ in the ‘.Rprofile’ or ‘Rprofile.site’ file. For example, ‘options(defaultPackages = character())’ will attach no extra packages on startup (only the ‘base’ package) (or set ‘R_DEFAULT_PACKAGES=NULL’ as an environment variable before running R). Using ‘options(defaultPackages = "")’ or ‘R_DEFAULT_PACKAGES=""’ enforces the R system default.
Так как вы, вероятно, сделать хотите, чтобы все пакеты по умолчанию загружены, а затем дополнительные те, в дополнение (а не, скажем, не загружая некоторые из пакетов по умолчанию), вы можете из числа СПЭ ее поставила
library("mypackage1")
library("mypackage2")
[etc.]
или с помощью options(defaultPackages=...)
:
options(defaultPackages=c(getOption("defaultPackages"),
"mypackage1","mypackage2", ... [etc.]))
в вашем .Rprofile
к Append желаемых пакетов для стандартного по умолчанию.
редактировать (скопированы с комментариями) вновь получать эту работу в 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
или нет.
Редактировать # 2: в соответствии с нижеследующим комментарием он работает с последней версией Rstudio.
+1 для 'потому что '? Rprofile' длинный и потенциально запугивающий'. Это так, а также ужасно компактный * и * полный комплект документации. Определенно рекомендуемое чтение. –
Спасибо @Ben Bolker Я попытался добавить эту строку 'library (foo)' в файл 'Rprofile.site', и я не получаю то, что хочу. Что значит «foo»? Что это? Предполагается ли это имя для определенного пакета, который я хочу загрузить? – Nestorghh
извините; 'foo' - старомодная переменная« placeholder ». Например, вы можете попробовать «library (« ggplot2 »); библиотека ("emdbook"); библиотека ("quantreg"); library ("rms") '(в качестве примеров некоторых реальных пакетов, которые вы можете включить). –
Существует файл с именем .Rprofile, что нет ничего, кроме сценария, который запускается каждый раз, когда вы начинаете новую сессию R.
Что вам нужно сделать, это добавить library(package)
к нему. Если вы используете Unix, это, вероятно, в вашей домашней папке в виде скрытого файла.
Quick-R page on customizing R startup содержит в основном ту же информацию, что и ответы Бена и Жоао, но это, пожалуй, немного яснее. Создайте копию файла с Rprofile.site
желаемых изменений в вашей домашней папке (Документы на Windows) и назовите его .Rprofile
EDIT: Я заметил, что R 3.0.0 не выглядит из папки документов больше, но использует дом пользователя (имя пользователя) под Windows 7. Возможно, это может быть проблема с установкой (например, что я случайно установил R "ранее). Тем не менее, страница Quick-R, связанная в этом ответе, говорит правильный способ сделать это. Если кто-то еще сталкивается с этой проблемой, решение должно скопировать .Rprofile
в домашний каталог пользователя.
Быстрый ответ заключается в том, что вы должны поместить свои пакеты R в файл .Rprofile
, как и все предлагали.
Обратите внимание, что R будет читать этот файл, а затем загрузить базовые пакеты R.Смотрите с ?Startup:
Note that when the site and user profile files are sourced only the base package is loaded,
Это может вызвать проблемы, если пакет, который вы хотите загрузить Усиливает/перезаписать некоторые R базовые функции. Смотрите, например, с tidyverse :: фильтром: https://github.com/tidyverse/dplyr/issues/1611
Я вижу два решения до сих пор:
Использование
.First.sys()
в первой строке файла.Rprofile
: это команда, которая обычно запускается после чтения .Rprofile, который загружает пакеты вgetOption("defaultPackages")
.Обновление опции defaultPackages: не используйте
library()
в вашем .Rprofile, но что-то в этом роде.old <- getOption("defaultPackages") options(defaultPackages = c(old, "tidyverse"))
Обычно это не очень хорошая идея, потому что она делает все последующий код в сессии зависит от установленного в то время как если бы он имел библиотечные вызовы в нем, то это будет более самодостаточным. Если вы попытаетесь поделиться своим кодом с другими, они не будут вам очень рады, так как они не смогут запускать ваши скрипты без дополнительных инструкций. –
Вы можете определить функцию 'load_extra_packages()' в файле '.Rprofile' /' Rprofile.site', который загрузил все нужные вам пакеты (и распечатал их имена), затем запустите эту команду в начале ваших сеансов - это сделает ваш код прозрачным, если не полностью автономным ... –