web-dev-qa-db-fra.com

Le document installant knitr échoue: "essayer d'utiliser CRAN sans créer de miroir"

En utilisant le code suivant, j'ai obtenu les données que je voulais, mais pour une raison quelconque, je ne peux pas comprendre que knitr ne me laisse pas compiler un PDF, comme indiqué ci-dessous :

Mon code:

install.packages("weatherData")
library(weatherData)
istanbul <- getWeatherForDate("Istanbul",
                              start_date = Sys.Date() - 41, 
                              end_date = Sys.Date())

Fonctionne sans problème mais je reçois le message suivant lors de la compilation du PDF:

Quitting from lines 3-31 (ist_weather.spin.Rmd) 
Error in contrib.url(repos, type) : 
  trying to use CRAN without setting a mirror
Calls: <Anonymous> ... eval -> eval -> install.packages -> grep -> contrib.url
Execution halted
38
Locksmith

Knitr produit une session R, sans mirroir par défaut, sauf demande expresse de votre part. Nous avons tendance à oublier que nous devons configurer CRAN pour chaque session R lorsque nous utilisons Rstudio, car il en prend soin, mais uniquement pour une utilisation interactive, pas pour knitr.

Vous pouvez essayer de spécifier un miroir en tant que install.packages argument:

install.packages("weatherData",repos = "http://cran.us.r-project.org")

Vous pouvez également configurer votre miroir CRAN par défaut dans votre .Rprofile. Voir cette réponse .

Cela dit, ce n’est pas une bonne idée d’installer des paquetages avec un document knitr que vous allez probablement compiler plusieurs fois . Vous devez supposer que les utilisateurs savent comment installer un paquet manquant si nécessaire ou au moins vérifier si le paquet est installé avant de le réinstaller.

if(!require(weatherData)) install.packages("weatherData",repos = "http://cran.us.r-project.org")
61
scoa

Vous devez définir le référentiel CRAN dans votre R. Pour ce faire, lancez R ou RStudio. dans le terminal R, exécutez les codes suivants.

r = getOption("repos")
r["CRAN"] = "http://cran.us.r-project.org"
options(repos = r)
install.packages("weatherData")

Le code ci-dessus définit le référentiel CRAN dans le répertoire R et lors de l'installation du package suivant, il n'est pas nécessaire de le redéfinir.

La méthode alternative consiste simplement à exécuter install.packages("weatherData", repos="http://cran.us.r-project.org"). Cependant, avec la deuxième solution, le référentiel n'est pas défini et vous devez le passer en tant que paramètre dans chaque installation de package.

5
Ramin Ar