Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Package error when running r code on command line

Tags:

r

rstudio

I have some code that I run that includes this part:

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

When I run in it rstudio, everything runs seamlessly and there are no bugs. However, when I try running my code on the command line, I get this error:

$ 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 
like image 248
kng Avatar asked Jul 17 '13 16:07

kng


People also ask

How do I enable a package in R?

packages(' ') command. Alternatively, you would go to the packages field in Rstudio, click install packages, choose the package and click install. If you have the package on your computer, it is not ready to use yet. You need to attach/load/activate (synonyms) the package.

Why I Cannot install package in R?

Changing the configuration in R Studio to solve install packages issue. Go To Tools -> Global option -> Packages. Then uncheck the option “Use secure download method for HTTP”. For other RStudio issues refer to official Troubleshooting Guide here.


1 Answers

RStudio sets a default repository when you call install.packages from within RStudio. When you run the script via the command line, you have to tell R which repository to use (or set a global default repository).

You can easily fix this problem by telling R to use your favorite repository.

For example, if you want to use RStudio's package repository, set repos="http://cran.rstudio.com/" inside the install.packages call.

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

This should work!

like image 75
ialm Avatar answered Sep 21 '22 04:09

ialm