Что означает "Ошибка в инструментах: httpdPort <= 0L:...." в Rstudio?
Я обновил R до версии 3.2.2.
Когда я перезапускаю Rstudio, перед отображением " > " появляется сообщение об ошибке:
Error in tools:::httpdPort <= 0L :
comparison (4) is possible only for atomic and list types
Что это значит? Что нужно сделать, чтобы удалить это сообщение?
Ответы
Ответ 1
Обновите свою версию RStudio до последней версии, она должна работать в любой ОС.
Для пользователей терминалов Linux/Ubuntu 14.04 просто выполните:
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
Теперь запустите RStudio. Сообщение об ошибке должно исчезнуть.
Ответ 2
Я только что столкнулся с той же проблемой сегодня и просмотрел исходный код, чтобы понять происхождение. Причина в том, что до R 3.1.3, httpdPort
была переменной, а с R 3.2.0 - это функция.
Ошибка возникает, поскольку строка
tools:::httpdPort <= 0L
неверно, если httpdPort
является функцией. Это должно быть
tools:::httpdPort() <= 0L
Кажется, что RStudio запускает эту строку в какой-то момент и, конечно же, ей нужно знать, какую из двух версий запускать. Вот почему RStudio необходимо обновить после обновления R от версии <= 3.1.3 до версии >= 3.2.0.
httpdPort
определяется в файле src/library/tools/R/dynamicHelp.R
. В R 3.1.3 определение читает
httpdPort <- 0L
в то время как в версии 3.2.0 R это
httpdPort <- local({
port <- 0L
function(new) {
if(!missing(new))
port <<- new
else
port
}
})
Таким образом, решение проблемы заключается в том, чтобы либо понизить вашу версию R до <= 3.1.3 , либо для обновления RStudio.