2015-10-03 6 views
10

Ho aggiornato R alla versione 3.2.2. Quando ho riavviato Rstudio, prima che venga visualizzato ">", v'è un messaggio di errore:Che cosa significa "Errore in strumenti ::: httpdPort <= 0L: ...." in Rstudio?

Error in tools:::httpdPort <= 0L : 
     comparison (4) is possible only for atomic and list types 

Cosa significa? Cosa devo fare per rimuovere questo messaggio?

+0

qual è il tuo rstudio versIon? Potrebbe essere necessario aggiornarlo. Vedi ad esempio https://github.com/rstudio/shinyapps/issues/144 – scoa

risposta

10

Aggiorna la tua versione RStudio al più recente, dovrebbe funzionare in qualsiasi sistema operativo.

Per Linux/Ubuntu 14.04 gli utenti del terminale, è sufficiente fare:

sudo apt-get remove rstudio 

wget https://download1.rstudio.org/rstudio-0.99.489-amd64.deb 

sudo dpkg -i rstudio-0.99.489-amd64.deb 

Ora, eseguire RStudio. Il messaggio di errore dovrebbe scomparire.

5

Ho appena incontrato lo stesso problema oggi e ho cercato attraverso il codice sorgente per capire l'origine. Il motivo è che fino a R 3.1.3, httpdPort era una variabile, mentre da R 3.2.0, è una funzione.

L'errore si verifica, perché la linea

tools:::httpdPort <= 0L 

è sbagliato, se httpdPort è una funzione. Dovrebbe invece essere

tools:::httpdPort() <= 0L 

Sembra che RStudio corre quella linea ad un certo punto e, naturalmente, ha bisogno di sapere, quale delle due versioni per l'esecuzione. Questo è il motivo per cui RStudio deve essere aggiornato dopo che R è aggiornato da una versione < = 3.1.3 a una versione> = 3.2.0.

Il httpdPort è definito nel file src/library/tools/R/dynamicHelp.R. In R versione 3.1.3, la definizione si legge

httpdPort <- 0L 

mentre in R versione 3.2.0, è

httpdPort <- local({ 
    port <- 0L 
    function(new) { 
     if(!missing(new)) 
      port <<- new 
     else 
      port 
    } 
}) 

Per risolvere il problema è quindi a uno declassare la versione R per < = 3.1.3 o per aggiornare RStudio.