readRDS(file) in 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
These are suggestions I have come across:
- Delete your
.Rhistory
and.RData
files in the directory in which you are running R. - Run
update.packages()
-
Try and detect "bad files" in your library directories. You can do this in R
# List the library paths # The issue is likely to be in the first directory paths = .libPaths() ## Try and detect bad files list.files(paths, pattern = "^00LOCK*|*\\.rds$|*\\.RDS$", full.names = TRUE) ## List files of size 0 l = list.files(paths, full.names = TRUE) l[sapply(l, file.size) == 0]
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:
- R-sig-Debian mailing list
- Option 3 was a combination of answers provided by different people over the last few years, including Chunxiao Xu, Larry Hunsicker and Frank Harrell
Run find /usr/local/lib/R/site-library/ /usr/lib/R/library/ /usr/lib/R/site-library/ ~/.local/lib/ -iname '*rds' -a -size 0
and then delete the files found.
Chunxiao Xu and Rando Hinn's solution above worked for me, with a minor tweak.
First, change directories to your personal R package directory, then run: find -iname '*rds' -a -size 0
Delete the directories containing any 0 length files in the above list. Then reopen R (or RStudio) and reinstall the deleted packages.
You should now be able to list the packages again.
Chunxiao Xu's original suggestion above lists ALL of the R package directories. But the exact locations of these directories will vary from installation to installation, and their addresses will have to be edited for your installation.
Larry Hunsicker
Something simple to try: if it is an .rda file use load
instead of readRDS
. You can then save the loaded file as an .rds and try readRDS
again.