Где R хранит пакеты? - PullRequest
       32

Где R хранит пакеты?

182 голосов
/ 11 апреля 2010

Функция install.packages() в R - это утилита автоматического разархивирования, которая получает и устанавливает пакеты в R.

  1. Как узнать, какой каталог R выбран для хранения пакетов?

  2. Как я могу изменить каталог, в котором R хранит и получает доступ к пакетам?

Ответы [ 4 ]

210 голосов
/ 11 апреля 2010

Команда install.packages просматривает переменную .libPaths. Вот что по умолчанию используется в OSX:

> .libPaths()
[1] "/Library/Frameworks/R.framework/Resources/library"

По умолчанию я не устанавливаю туда пакеты, я предпочитаю, чтобы они устанавливались в моем домашнем каталоге. В моем .Rprofile есть такая строка:

.libPaths( "/Users/tex/lib/R" )

Это добавляет каталог "/ Users / tex / lib / R" в начало переменной .libPaths.

39 голосов
/ 11 апреля 2010

Это описано в руководстве 'R Installation and Administration', которое прилагается к вашей установке.

На моем компьютере с Linux:

R> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
[3] "/usr/lib/R/library"           
R> 

означает, что путь по умолчанию является первым из них. Вы можете переопределить это через аргумент для install.packages() (изнутри R) или R CMD INSTALL (вне R).

Вы также можете переопределить, установив переменную R_LIBS_USER.

9 голосов
/ 12 апреля 2010

Спасибо за указание от вышеупомянутых двух ответчиков. Предложение Джеймса Томпсона сработало лучше всего для пользователей Windows.

  1. Перейдите туда, где установлена ​​ваша R-программа. Это упоминается как R_Home в литературе. Найдя его, перейдите в подкаталог / etc.

    C:\R\R-2.10.1\etc
    
  2. Выберите файл в этой папке с именем Rprofile.site. Я открываю это с VIM. Вы обнаружите, что это простой файл с менее чем 20 строками кода. Я вставил в код следующее:

    # my custom library path
    .libPaths("C:/R/library")
    

    (Комментарий добавлен для отслеживания того, что я сделал с файлом.)

  3. В R ввод функции .libPaths() дает первую цель в C:/R/Library

ПРИМЕЧАНИЕ: вероятно, есть несколько способов добиться этого, но другие методы, которые я пробовал, по какой-то причине не работали.

0 голосов
/ 17 июня 2016

Вы не хотите, чтобы '='

Использовал .libPaths("C:/R/library") в вас Rprofile .site file

И убедитесь, что у вас правильный символ "(Shift-2)

...