Я попытался загрузить свое рабочее пространство R и получил эту ошибку:
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
Меня не особо интересуют технические детали, но в основном то, как я это вызвал и как я могу предотвратить это в будущем. Вот несколько заметок о ситуации:
- Я запускаю R 2.15.1 на MacBook Pro под управлением Windows XP в разделе bootcamp.
- Что-то явно не так с этим файлом рабочего пространства, так как он весит всего ~ 80 КБ, в то время как все мои другие обычно> 10 000
- На выходных я запускал внешнюю программу моделирования в R и сохранял ее результаты для разных объектов. Я запускал несколько итераций модели в течение нескольких дней, например output_Saturday <- call_model ()
- В выводе модели нет ничего особенного, это просто список со слотами для бета-версий, VC-матриц, спецификаций модели и т. Д.
r
workspace
magic-numbers
Н. Брауэр
источник
источник
source(filename)
вместоload(filename)
.load
эд что - то яwrite.table
éd , а не подsave
ред и получил эту ошибку. Ой.load
, гдеloadDb
следует использовать.Ответы:
Я получил эту ошибку, когда случайно использовал
load()
вместоsource()
илиreadRDS()
.источник
load()
вместоread.csv()
. : pload()
вместоreadRDS()
(да, 9 месяцев спустя, я вернулся сюда почти из-за той же ошибки).Также стоит отметить следующее из документа группы R Core, в котором резюмируются изменения в версиях R после v3.5.0 ( здесь ):
R имеет новый формат сериализации (версия 3), который поддерживает настраиваемую сериализацию объектов инфраструктуры ALTREP ... Сериализованные данные в формате 3 не могут быть прочитаны версиями R до версии 3.5.0.
Я столкнулся с этой проблемой, когда сохранил рабочую область в v3.6.0, а затем поделился файлом с коллегой, который использовал v3.4.2. Мне удалось решить проблему, добавив «version = 2» к моей функции сохранения.
источник
Предполагая, что ваш файл называется "myfile.ext"
Если файл, который вы пытаетесь загрузить, не является R-скриптом, вы должны использовать
source("myfile.ext")
вы можете попробовать эту
readRDS
функцию и присвоить ее имени переменной:my.data <- readRDS("myfile.ext")
источник
Магическое число прибывает из систем типа UNIX, где первые несколько байтов файла содержат маркер, указывающий тип файла.
Эта ошибка означает, что вы пытаетесь загрузить файл недопустимого типа в R. По какой-то причине R больше не распознает этот файл как файл рабочей области R.
источник
Установите
readr
пакет, затем используйтеlibrary(readr)
.источник
readr::
их помощью легко просматривать функции.readr::read_rds
это то, что в итоге сработало для меня.Это также происходит, когда вы пытаетесь
load()
использовать объект rds вместо использованияobject <- readRDS("object.rds")
источник
Я получил ошибку при создании пакета R (используя roxygen2)
Причина в моем случае заключалась в том, что я сэкономил
data/mydata.RData
с помощью,saveRDS()
а неsave()
. Напримерsave(iris, file="data/iris.RData")
Это устранило проблему для меня. Я нашел эту информацию здесь
Также обратите внимание, что с
save()
/load()
объект загружается с тем же именем, с которым он изначально был сохранен (т.е. вы не можете переименовать его, пока он не будет загружен в среду R под тем именем, которое он имел при первоначальном сохранении).источник
У меня возникла эта проблема, когда я сохранил файл Rdata в более старой версии R, а затем попытался открыть в новой. Решил, обновив мою версию R до последней.
источник
Если вы работаете,
devtools
попробуйте сохранить файлы с помощью:devtools::use_data(x, internal = TRUE)
Затем удалите все файлы, сохраненные ранее.
Из документа:
источник