Де зберігаються пакети R?


207

install.packages()Функція R є автоматичною утилітою розпакування , яка отримує і установку пакетів в R.

  1. Як дізнатися, який каталог R обрав для зберігання пакетів?

  2. Як я можу змінити каталог, в якому R зберігає та отримує доступ до пакетів?

Відповіді:


248

Команда install.packages переглядає змінну .libPaths. Ось які мої значення за замовчуванням для OSX:

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

Я не встановлюю там пакунки за замовчуванням, я вважаю за краще встановити їх у своєму домашньому каталозі. У своєму .Rprofile у мене є такий рядок:

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

Це додає каталог "/ Users / tex / lib / R" на передню частину змінної .libPaths.


це те, що я хотів би зробити, але як отримати доступ до .Rprofile?
Підказка

7
Це файл . Знову ж таки, прочитайте інструкцію та / або довідку (запуск).
Дірк Еддельбюттель

44

Це задокументовано у посібнику з встановлення та адміністрування 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.


У мене є машина Windows Vista, але, припускаючи, що існує та сама процедура, ви вкажете каталог у списку аргументів install.packages () разом з назвою пакета?
Milktrader

3
Ви ще не виявили "help (install.packages)"? Також див. "Довідку (запуск)", як показано в останньому моєму коментарі. І прочитайте ці посібники. Нарешті, на * doze я прагну просто встановити R_LIBS = "C: / opt / R / library" у файлі .Renviron. Я знаю, що ви теж запитаєте про це - тому читайте довідку (Startup). Гаразд? ;-)
Дірк Еддельбуеттель

1
У мене є десяток посібників на моєму Kindle (включаючи сторінку 3 000+), і я не знав про файл довідки щодо запуску. Я читав посібники і потрапив у тупик. Подивіться, це була проста відповідь упродовж усього часу. Чи втрачаю я бали за питання щодо RTFM <- у мене не багато втрачати. Ще раз дякую Дірк. До зустрічі на R / Finance наступного тижня. Поглиблювати навички R якнайкраще можу, щоб я не запитувався під час презентацій.
Milktrader

1
Сторінка 3000+ - це зібрання всіх довідкових сторінок - найменш корисних. Вищезгадане «Установка та адміністратор» має бути дуже корисним для того, що ви тут хочете.
Дірк Еддельбюттель,

чи існує еквівалентний спосіб знайти їх з командного рядка bash? тобто змінна оточення , яка визначає , де встановлені бібліотеки R , якщо $R_LIBSі $R_LIBS_USERне встановлені? (Я хочу мати змогу виконати сценарій R у inst/каталозі встановленого пакета) в будь-якій системі Unix.
Девід Лебоуер

12

Дякуємо за вказівку від двох вищевідповідачів. Пропозиція Джеймса Томпсона найкраще працювала для користувачів 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

ПРИМІТКА. Можливо, існує більше ніж один спосіб досягти цього, але інші методи, які я намагався, чомусь не спрацювали.


1
Я копіюю вкладений рядок .libPaths=("C:/R/library")у свій файл Rprofile.site . Я запускаю R 2.13.1 64 біт і отримую цю помилку: Помилка: не вдається змінити значення заблокованої прив’язки для '.libPaths' я використовую Windows 7.
Фред

1
Дивіться відповідь Дейва : це повинно бути .libPaths("...")(дзвінок, а не призначення).
CodeFox

0

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

Використовуйте .libPaths("C:/R/library")у вас Rprofile.site файл

І переконайтеся, що у вас правильний символ "(Shift-2)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.