Путаница с .libPaths во время установки пакета

На этот вопрос, вероятно, ответит кто-то, кто направит меня к файлу справки, но я явно его пока не вижу. Моя проблема заключается в том, что когда я устанавливаю пакет (иногда), он не отображается по умолчанию для содержимого моего .libPaths - вместо этого он хочет установить сетевой путь, на который у него нет разрешения.

Вот мой путь к библиотеке

>.libPaths()
[1] "C:/Program Files/R/R-3.3.0/library"

Если я попытаюсь установить этот пакет без указания аргумента lib, мне кажется, что он пытается сохранить в сетевую папку (я изменил имя сетевого диска в сообщении об ошибке, но вы поняли):

 > install.packages("rmarkdown")
 trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/rmarkdown_0.9.6.zip'
 Content type 'application/zip' length 2182803 bytes (2.1 MB)
 downloaded 2.1 MB

 package ‘rmarkdown’ successfully unpacked and MD5 sums checked

 The downloaded binary packages are in
 C:\Users\my.name\AppData\Local\Temp\RtmpkFVHnn\downloaded_packages
 Warning message:
 In dir.create(configDir, recursive = TRUE) :
 cannot create dir '\\server.name\server_directory', reason 'Permission denied'

Однако, если я укажу .libpaths() в аргументе "lib", то это сработает. Но разве это не аргумент lib по умолчанию?

> install.packages("rmarkdown",lib=.libPaths())
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/rmarkdown_0.9.6.zip'
Content type 'application/zip' length 2182803 bytes (2.1 MB)
downloaded 2.1 MB

package ‘rmarkdown’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
C:\Users\jordan.watson\AppData\Local\Temp\RtmpkFVHnn\downloaded_packages

Однако это происходит не каждый раз. Например, я без проблем загрузил библиотеку «прогноз», просто написав install.packages("forecast").

Я просто хотел бы лучше понять это поведение. Может кто-нибудь объяснить, почему это происходит? У меня Windows 7 без полных прав администратора, но у меня есть права администратора для моей папки R на диске C.

Заранее извиняюсь, что не могу привести воспроизводимый пример - это не совсем тот вопрос.


person Jordan    schedule 25.06.2016    source источник


Ответы (1)


Иордания,

Я чувствую, что ваша установка неверна.

Предложенное решение

Попробуйте выполнить следующую команду и посмотрите, исправит ли это ситуацию.

Примечание. Я заменил userid на <user> в приведенных ниже примерах.

.libPaths( c( "C:/Users/<user>/Documents/R/win-library/3.3", .libPaths()) )

Объяснение

Я ожидаю, что .libPaths() по умолчанию вернет два каталога, а не один.

> .libPaths()
[1] "C:/Users/<user>/Documents/R/win-library/3.3" "C:/Program Files/R/R-3.3.0/library"

Когда вы устанавливаете R, он устанавливает базовые библиотеки под

C:/Program Files/R/R-3.3.0/library     

любые новые библиотеки обычно добавляются в:

"C:/Users/<user>/Documents/R/win-library/3.3" 

если вы наберете View(installed.packages()), вы сможете увидеть, где установлены пакеты.

Пакеты, поставляемые с установкой R (база, статистика и около 30 других), хранятся в подкаталоге библиотеки того места, где вы установили R. Вы можете получить его расположение с помощью:

> R.home("library")
[1] "C:/PROGRA~1/R/R-33~1.1/library"

> .Library
[1] "C:/PROGRA~1/R/R-33~1.1/library

Вы также получаете пользовательскую библиотеку для установки пакетов, которые будут доступны только вам. Расположение в Windows, для версии R x.y.z, оно находится в подпапке R/win-library/x.y домашнего каталога, где домашний каталог можно найти с помощью:

> path.expand("~")
[1] "C:/Users/<user>/Documents"

> Sys.getenv("HOME")
[1] "C:/Users/<user>/Documents"

Проблема

Таким образом, я ожидаю, что .libPaths() вернет два пути, а не один, что означает, что вы каким-то образом неправильно настроили путь к библиотеке установки R.

Я надеюсь, что вышеизложенное поможет.

Ссылки:

person Technophobe01    schedule 26.06.2016
comment
Спасибо! Действительно, вы правы насчет неправильной (необычной?) конфигурации моей системы. Поскольку у меня нет прав администратора на весь диск C, а только на эту папку, кажется, что папка win-library находится на сетевом диске, а установка R — на C. Я провел много времени с libPaths файл справки, но не извлек объяснение, которое вы дали. Я все еще не понимаю, почему одни библиотеки работают, а другие нет, но я продолжу работать над этой частью.... - person Jordan; 26.06.2016