Tentei carregar meu espaço de trabalho R e recebi este erro:
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
Não estou particularmente interessado nos detalhes técnicos, mas principalmente em como eu causei isso e como posso evitá-lo no futuro. Aqui estão algumas notas sobre a situação:
- Estou executando o R 2.15.1 em um MacBook Pro executando o Windows XP em uma partição bootcamp.
- Há algo obviamente errado neste arquivo de espaço de trabalho, uma vez que ele pesa apenas ~ 80kb, enquanto todos os meus outros são geralmente> 10.000
- No fim de semana, eu estava executando um programa de modelagem externa em R e armazenando sua saída em diferentes objetos. Eu executei várias iterações do modelo ao longo de vários dias, por exemplo, output_Saturday <- call_model ()
- Não há nada de especial na saída do modelo, é apenas uma lista com slots para betas, matrizes VC, especificação do modelo, etc.
r
workspace
magic-numbers
N Brouwer
fonte
fonte
source(filename)
vez deload(filename)
.load
ed algo que eu tinhawrite.table
ed em vez desave
ed e tenho esse erro. Opa.load
, ondeloadDb
deveria ser usado.Respostas:
Recebi esse erro quando usei acidentalmente em
load()
vez desource()
oureadRDS()
.fonte
load()
vez deread.csv()
. : pload()
vez dereadRDS()
(sim, 9 meses depois, estou de volta aqui para praticamente o mesmo erro).Também vale a pena observar o seguinte em um documento da Equipe Central do R resumindo as alterações nas versões do R após a v3.5.0 ( aqui ):
R tem um novo formato de serialização (versão 3) que suporta serialização personalizada de objetos da estrutura ALTREP ... Dados serializados no formato 3 não podem ser lidos por versões de R anteriores à versão 3.5.0.
Eu encontrei esse problema quando salvei um espaço de trabalho na v3.6.0 e, em seguida, compartilhei o arquivo com um colega que estava usando a v3.4.2. Consegui resolver o problema adicionando "version = 2" à minha função de salvamento.
fonte
Supondo que o nome do seu arquivo seja "myfile.ext"
Se o arquivo que você está tentando carregar não for um R-script, para o qual você usaria
você pode tentar a
readRDS
função e atribuí-la a um nome de variável:fonte
O número mágico vem de sistemas do tipo UNIX onde os primeiros bytes de um arquivo continham um marcador indicando o tipo de arquivo.
Este erro indica que você está tentando carregar um tipo de arquivo inválido em R. Por algum motivo, R não reconhece mais este arquivo como um arquivo de espaço de trabalho R.
fonte
Instale o
readr
pacote e use-olibrary(readr)
.fonte
readr::
é fácil verificar as funções.readr::read_rds
é o que funcionou para mim no final.Também ocorre quando você tenta
load()
um objeto rds em vez de usarfonte
Recebi o erro ao construir um pacote R (usando roxygen2)
A causa no meu caso foi que eu havia economizado
data/mydata.RData
com, emsaveRDS()
vez desave()
. Por exemplosave(iris, file="data/iris.RData")
Isso resolveu o problema para mim. Encontrei esta informação aqui
Observe também que com
save()
/load()
o objeto é carregado com o mesmo nome com que foi salvo inicialmente (ou seja, você não pode renomeá-lo até que já esteja carregado no ambiente R com o nome que tinha quando o salvou inicialmente).fonte
Tive esse problema quando salvei o arquivo Rdata em uma versão mais antiga do R e tentei abrir em uma nova. Resolvi atualizando minha versão R para a mais recente.
fonte
Se você estiver trabalhando com
devtools
tente salvar os arquivos com:Em seguida, exclua todos os arquivos salvos anteriormente.
Do doc:
fonte