R 中的 readRDS(文件)
每当我尝试在 R 中安装软件包时,都会收到以下错误:
Error in readRDS(file) : unknown input format
这在我发生系统崩溃后才开始发生。我在 Windows 7 下运行 32 位 R 2.13.0。我尝试删除并重新安装 R,但仍然出现错误。有什么方法可以解决这个问题,而无需删除所有内容(即我安装的所有软件包)并重新开始?
谢谢
Whenever I try to install a package in R, I get the following error:
Error in readRDS(file) : unknown input format
This just started occurring after I had a system crash. I am running 32 bit R 2.13.0 under windows 7. I tried removing and re-installing R, but continue to get the error. Is there any way I can fix this without deleting everything (i.e. all the packages I've installed) and starting over?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
评论(16)
我在打开 .RDS 文件时也遇到了几个问题,要么是“从连接读取错误”,要么是“未知的输入格式”。我尝试了几个 R 版本,其中版本为 3.4.2。以下工作有效:
(我不小心卸载了rstudio并重新安装了它,还安装了旧的R版本3.4.2,我不知道这是否会改变什么)
- 设置一个新的工作目录
- 我直接打开RDS文件而不是下载它(所以只保存到临时文件),然后我能够在 R 中打开它,
- 我将它从临时文件移动到我的新工作目录并使用
Data_Essay_Account <- readRDS("C:/.../newdirectory/Data_Essay_Account.RDS")
命令并且它起作用了。
不知何故,正确下载它然后移动它不起作用,只有在我将它放入临时文件中之后才起作用。当我最初尝试时,硬删除包对我来说不起作用。
我遇到了与OP相同的问题,但在我的情况下,问题.rds文件不是0字节,而是文件大小> 0并且充满NULL
字符(至少这是我在我在 Notepad++ 中打开了它们)
通过在加载给我错误的库之前使用 debugonce(loadNamespace)
(在我的示例中它是 VIM
包),我最终跟踪了我的问题已损坏.rds 文件位于 forcats
包的 META 文件夹中,该文件是在我安装 VIM
时作为第五代导入安装的,
(In the rstudio environment pane)
__NamesSpacesLoading__ chr[1:5] "forcats" "haven" "rio" "car" "VIM"
然后由 VIM
修复只需删除并重新安装 forcats
即可解决问题
调整 @csgillespie 接受的答案中的代码,我可以通过尝试读取所有 rds 文件来找到这一点,如下所示
paths = .libPaths()
l <- list.files(paths,
pattern = "*\\.rds$",
ignore.case = T,
recursive = T,
full.names = TRUE)
checkRDS <- function(file) {
tryCatch({
readRDS(file)
"OK"
},
error = function(cond) {
return("Error")
})
}
l[sapply(l,checkRDS)=="Error"]
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
以下是我遇到的建议:
.Rhistory
和.RData
文件。update.packages()< /code>
尝试检测库目录中的“坏文件”。您可以在 R 中执行此操作
删除所有突出显示的文件/目录。如果您确实愿意,可以使用
file.remove()
。删除存储下载包的目录。
只有解决方案 3 对我有用。
参考:
These are suggestions I have come across:
.Rhistory
and.RData
files in the directory in which you are running R.update.packages()
Try and detect "bad files" in your library directories. You can do this in R
Delete any files/directories highlighted. You could use
file.remove()
if you really wanted to.Delete the directory in which you have stored your downloaded packages.
Only solution 3 worked for me.
Ref: