Rstudio中的"Error in tools:::httpdPort <= 0L : ...."是什么意思?
What does "Error in tools:::httpdPort <= 0L : ...." in Rstudio means?
我已经将 R 升级到 3.2.2 版。
当我重新启动 Rstudio 时,在显示“>”之前,有一条错误消息:
Error in tools:::httpdPort <= 0L :
comparison (4) is possible only for atomic and list types
这是什么意思?我应该怎么做才能删除此消息?
将您的 RStudio 版本升级到最新版本,应该可以在任何 OS.
中使用
对于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。错误消息应该会消失。
今天刚好遇到同样的问题,翻了翻源码才知道来龙去脉。原因是在 R 3.1.3 之前,httpdPort
是一个变量,而从 R 3.2.0 开始,它是一个函数。
错误发生,因为行
tools:::httpdPort <= 0L
是错误的,如果 httpdPort
是一个函数。应该是
tools:::httpdPort() <= 0L
RStudio 运行 似乎在某些时候有那行,当然,它需要知道,运行 的两个版本中的哪一个。这就是为什么R从版本<=3.1.3更新到版本>=3.2.0后需要更新RStudio的原因。
httpdPort
在文件 src/library/tools/R/dynamicHelp.R
中定义。在 R 版本 3.1.3 中,定义为
httpdPort <- 0L
而在 R 版本 3.2.0 中,它是
httpdPort <- local({
port <- 0L
function(new) {
if(!missing(new))
port <<- new
else
port
}
})
解决该问题的方法是将您的 R 版本降级到 <= 3.1.3 或 升级 RStudio。
我已经将 R 升级到 3.2.2 版。 当我重新启动 Rstudio 时,在显示“>”之前,有一条错误消息:
Error in tools:::httpdPort <= 0L :
comparison (4) is possible only for atomic and list types
这是什么意思?我应该怎么做才能删除此消息?
将您的 RStudio 版本升级到最新版本,应该可以在任何 OS.
中使用对于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。错误消息应该会消失。
今天刚好遇到同样的问题,翻了翻源码才知道来龙去脉。原因是在 R 3.1.3 之前,httpdPort
是一个变量,而从 R 3.2.0 开始,它是一个函数。
错误发生,因为行
tools:::httpdPort <= 0L
是错误的,如果 httpdPort
是一个函数。应该是
tools:::httpdPort() <= 0L
RStudio 运行 似乎在某些时候有那行,当然,它需要知道,运行 的两个版本中的哪一个。这就是为什么R从版本<=3.1.3更新到版本>=3.2.0后需要更新RStudio的原因。
httpdPort
在文件 src/library/tools/R/dynamicHelp.R
中定义。在 R 版本 3.1.3 中,定义为
httpdPort <- 0L
而在 R 版本 3.2.0 中,它是
httpdPort <- local({
port <- 0L
function(new) {
if(!missing(new))
port <<- new
else
port
}
})
解决该问题的方法是将您的 R 版本降级到 <= 3.1.3 或 升级 RStudio。