installer.les paquets échouent dans le document knitr: "essayer d'utiliser CRAN sans définir 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 knitr Ne me laisse pas compiler un document 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 en essayant de compiler le 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
28
demandé sur CL. 2015-11-28 10:53:20

2 réponses

Knitr produit une session R, sans miroir cran par défaut, sauf si vous en avez spécifiquement demandé un. Nous avons tendance à oublier que nous devons configurer CRAN pour chaque session R Lorsque nous utilisons Rstudio car il s'en occupe, mais seulement pour une utilisation interactive, pas pour knitr.

Vous pouvez essayer de spécifier un miroir comme argument install.packages:

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, , il n'est pas une bonne idée de installez des paquets via un document knitr que vous compilerez probablement plusieurs fois . Vous devez supposer que les gens savent comment installer un paquet manquant si nécessaire, ou au moins tester si le paquet est installé avant de l'installer à nouveau

if(!require(weatherData)) install.packages("weatherData",repos = "http://cran.us.r-project.org")
42
répondu scoa 2017-07-06 15:00:37

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 et dans l'installation du package suivant, pas besoin de définir à nouveau.

Autre façon est de 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 paramètre dans chaque installation de package.

0
répondu Ramin Ar 2018-08-31 09:52:11