Подтвердить что ты не робот

Ошибка пакета при запуске r-кода в командной строке

У меня есть код, который я запускаю, который включает эту часть:

if (!require("yaml")) {
  install.packages("yaml") 
  library("yaml")
}

Когда я запускаю в нем rstudio, все работает без проблем и ошибок нет. Однако, когда я пытаюсь запустить свой код в командной строке, я получаю эту ошибку:

$ Rscript.exe file.R
Loading required package: yaml
Installing package(s) into ‘/usr/lib/R/site-library’
(as ‘lib’ is unspecified)
Error in contrib.url(repos, type) :
  trying to use CRAN without setting a mirror
Calls: install.packages -> grep -> contrib.url
In addition: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called ‘yaml’
Execution halted
4b9b3361

Ответ 1

RStudio устанавливает репозиторий по умолчанию, когда вы вызываете install.packages из RStudio. Когда вы запускаете script через командную строку, вы должны указать R, какой репозиторий использовать (или установить глобальный репозиторий по умолчанию).

Вы можете легко устранить эту проблему, сообщив R, чтобы использовать ваш любимый репозиторий.

Например, если вы хотите использовать репозиторий пакетов RStudio, установите repos="http://cran.rstudio.com/" внутри вызова install.packages.

if (!require("yaml")) {
  install.packages("yaml", repos="http://cran.rstudio.com/") 
  library("yaml")
}

Это должно сработать!