Intenté cargar mi espacio de trabajo R y recibí este error:
Error: bad restore file magic number (file may be corrupted) -- no data loaded
In addition: Warning message:
file ‘WORKSPACE_Wedding_Weekend_September’ has magic number '#gets'
Use of save versions prior to 2 is deprecated
No estoy particularmente interesado en los detalles técnicos, pero sobre todo en cómo lo causé y cómo puedo prevenirlo en el futuro. Aquí hay algunas notas sobre la situación:
- Estoy ejecutando R 2.15.1 en una MacBook Pro con Windows XP en una partición de bootcamp.
- Obviamente, hay algo mal en este archivo de espacio de trabajo, ya que pesa solo ~ 80 kb, mientras que todos los demás suelen ser> 10,000
- Durante el fin de semana estuve ejecutando un programa de modelado externo en R y almacenando su salida en diferentes objetos. Ejecuté varias iteraciones del modelo en el transcurso de varios días, por ejemplo, output_Saturday <- call_model ()
- No hay nada especial en la salida del modelo, es solo una lista con ranuras para betas, matrices VC, especificación del modelo, etc.
r
workspace
magic-numbers
N Brouwer
fuente
fuente
source(filename)
lugar deload(filename)
.load
algo que habíawrite.table
editado en lugar desave
ed y obtuve este error. ¡Ups!load
, dóndeloadDb
debería usarse.Respuestas:
Recibí ese error cuando usé accidentalmente en
load()
lugar desource()
oreadRDS()
.fuente
load()
lugar deread.csv()
. : pload()
lugar dereadRDS()
(sí, 9 meses después, estoy de vuelta aquí por casi el mismo error).También vale la pena señalar lo siguiente de un documento del R Core Team que resume los cambios en las versiones de R posteriores a la v3.5.0 ( aquí ):
R tiene un nuevo formato de serialización (versión 3) que admite la serialización personalizada de objetos de marco ALTREP ... Los datos serializados en formato 3 no pueden ser leídos por versiones de R anteriores a la versión 3.5.0.
Encontré este problema cuando guardé un espacio de trabajo en v3.6.0 y luego compartí el archivo con un colega que estaba usando v3.4.2. Pude resolver el problema agregando "version = 2" a mi función de guardado.
fuente
Suponiendo que su archivo se llame "myfile.ext"
Si el archivo que está intentando cargar no es un script R, para lo cual usaría
puede probar la
readRDS
función y asignarla a un nombre de variable:fuente
El número mágico proviene de sistemas de tipo UNIX donde los primeros bytes de un archivo tenían un marcador que indicaba el tipo de archivo.
Este error indica que está intentando cargar un tipo de archivo no válido en R. Por alguna razón, R ya no reconoce este archivo como un archivo de espacio de trabajo de R.
fuente
Instale el
readr
paquete, luego uselibrary(readr)
.fuente
readr::
es fácil escanear las funciones.readr::read_rds
es lo que funcionó para mí al final.También ocurre cuando intenta
load()
un objeto rds en lugar de usarfuente
Recibí el error al construir un paquete R (usando roxygen2)
La causa en mi caso fue que había ahorrado
data/mydata.RData
con ensaveRDS()
lugar desave()
. P.ejsave(iris, file="data/iris.RData")
Esto solucionó el problema para mí. Encontré esta información aquí
También tenga en cuenta que con
save()
/load()
el objeto se carga con el mismo nombre con el que se guardó inicialmente (es decir, no puede cambiarle el nombre hasta que ya esté cargado en el entorno R con el nombre que tenía cuando lo guardó inicialmente).fuente
Tuve este problema cuando guardé el archivo Rdata en una versión anterior de R y luego intenté abrir en una nueva. Lo resolví actualizando mi versión R a la más nueva.
fuente
Si está trabajando con,
devtools
intente guardar los archivos con:Luego, elimine todos los archivos guardados anteriormente.
Desde doc:
fuente