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

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

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

  • Как я могу изменить каталог, в котором R хранит и обращается к пакетам?

Ответ 1

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

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

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

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

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

Ответ 2

Это описано в руководстве по установке и администрированию R, которое прилагается к вашей установке.

В моем ящике 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.

Ответ 3

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

  • Выберите, где установлена ​​ваша программа R. Это упоминается как R_Home в литературе. Как только вы его найдете, перейдите в подкаталог /etc.

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

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

- добавлен комментарий, чтобы отслеживать, что я сделал с файлом.

  1. В R, набрав функцию .libPaths(), вы получите первую цель в C:/R/Library

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

Ответ 4

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

Используйте .libPaths( "C:/R/library" ) в файле Rprofile.site

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