更新后显示ggplot时R崩溃(进程内存读取超出范围)
我刚刚更新到 R 4.1.0 并重新安装了我的软件包和 Rstudio(在 Ubuntu 20.04 上)。现在,当我尝试制作任何 ggplot 时,R 内存不足并崩溃。错误消息很长,我无法完全阅读它,因为 R 会话立即中止,但它提到了"missing nul terminator","process memory read out of range"以及一堆[XXXX:XXXX:YYYYYYYY,ZZZZZZ,AAAAAA ERROR: elf_dynamic_array_reader.h:61] tag not found和 finally的行[XXXX:XXXX:YYYYYYYY,ZZZZZZ,AAAAAA] ERROR directory_reader_posix.cc:42] opendir: No such file or directory (2)(其中 X、Y、Z 和 A 是数字)。
我最初在我的数据中遇到了这个错误,但它似乎发生在任何 ggplot 上:
library(ggplot2)
ggplot(mtcars, aes(x = cyl, y = mpg)) + geom_boxplot()
我认为这与实际显示绘图有关,因为当我将绘图保存到变量中时它不会崩溃,然后将ggsave()其保存,并且生成的文件很好。当我在下一行ggplot(...)的函数中执行时也可以ggsave()。
基础 R 中的相同图工作正常。
boxplot(mpg~cyl, data = mtcars)
==> 在绘图窗格中显示箱线图
重新安装 ggplot2install.packages()并没有解决问题,我sudo apt install ./rstudio-1.4.1106-amd64.deb再次尝试,但它只是说 Rstudio 已经是最新版本。
回答
来自 Kevin Ushey 的这条推文说:
PSA:如果您是打算升级到 R 4.1.0 的 RStudio 用户,您可能需要安装 RStudio 的预览版(https://rstudio.com/products/rstudio/download/preview/)——否则,当您尝试使用 ggplot2 时,您可能会看到 RStudio 崩溃。
版本号是“1.4.1714-2 预览版”,远远领先于您通过apt. 该页面上的发行说明包括
支持即将发布的 R 4.1.0 版本,包括新的 |> 管道、(x) 函数速记和新的图形引擎。
另一种选择是将R降级到旧版本;对于 Windows,4.0.5 二进制文件似乎可以在此处获得。不幸的是,MacOS 下载页面在以前的版本中似乎只提供 3.6.3(不是任何 4.0.x 版本)——这感觉降级的路很长。
- Thanks Ben, do you know if that'll work for Ubuntu 20.04? I only see it going up to Ubuntu 18 on https://www.rstudio.com/products/rstudio/download/preview/
回答
我刚刚遇到了同样的问题,并检查了 RStudio 的更新。在撰写本文时,他们现在拥有适用于 Debian/Ubuntu 的 1.4.1717 版(我正在运行 Ubuntu 20)。更新已使用相同的警告修复了我的 ggplot 问题。