在readRDS(文件)中安装R软件包错误:从连接读取错误

MYa*_*208 22 r package ubuntu-14.04

每当我尝试在Ubuntu 14.04上安装R中的任何软件包时,我都会收到以下错误:

Error in readRDS(file) : error reading from connection
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这里给出的方法,但无法解决问题.

Shi*_*ang 9

我遇到了同样的错误,我重新启动了 R 会话,它对我有用。


and*_*ega 7

如果您有一个或多个错误安装的软件包(例如,因为您必须在安装过程中强制重新启动),您需要重新安装此/这些软件包。您可以使用以下代码找到它们:

library(purrr)

.libPaths() %>%
set_names() %>%
map(function(lib) {
    .packages(all.available = TRUE, lib.loc = lib) %>%
    keep(function(pkg) {
        f <- system.file('Meta', 'package.rds', package = pkg, lib.loc = lib)
        tryCatch({readRDS(f); FALSE}, error = function(e) TRUE)
    })
})
Run Code Online (Sandbox Code Playgroud)

这将返回包含损坏的包的嵌套列表:

$`/home/yourname/R`
[1] "brokenpkg"

$`/usr/lib64/R/library`
character(0)

$`/usr/share/R/library`
character(0)
Run Code Online (Sandbox Code Playgroud)

00LOCK-<pkgname>在尝试安装软件包时,您可能需要删除 R 在库位置中创建的目录。


use*_*187 6

1-从CRAN安装最新版本的R 并尝试安装软件包.

2-如果可以,请使用其他用户帐户进行检查.

3-尝试在本地安装R软件包.

4-如果旧版本的R创建了RDS文件,则可能存在其他类型的问题,这是来自R帮助的警告:

警告

这些函数提供了一个稳定的接口,因为R 2.4.0(当序列化对象的存储从字符变为原始向量时).但是,序列化格式在R的未来版本中可能会更改,因此不应将此接口用于R对象的长期存储.

在32位平台上,原始向量限制为2 ^ 31 - 1个字节,但R对象可能超过此值,并且它们的序列化通常会大于对象.

参考:帮助(序列化)

  • 请让我们知道上述评论是否有效。 (2认同)