Непосредственно загрузка .RData из github - PullRequest
3 голосов
/ 14 июня 2019

Я хочу загрузить PakPMICS2018bh.RData данные из https://github.com/myaseen208/PakPMICS2018Data/ и использовал следующий код, который выдает ошибку:

library(RCurl)
PakPMICS2018bhURL <- "https://github.com/myaseen208/PakPMICS2018Data/raw/master/PakPMICS2018bh.RData"
load(url(PakPMICS2018bhURL))

Ошибка загрузки (url (PakPMICS2018bhURL)): вход не начинается с магического номера, совместимого с загрузкой из соединения

Мне интересно, что не так с моим кодом. Любая помощь, пожалуйста.

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

Проблема не в вашем коде, она должна работать нормально.Это, например, загружает файл Rdata из github обычно

load(url("https://github.com/mawp/spict/raw/master/spict/data/pol.rda"))

Ваша проблема связана с файлами, которые вы пытаетесь открыть, они сохраняются в формате сериализации 3, который был представлен в версии R 3.5, используяsave(version = 3)

R имеет новый формат сериализации (версия 3), который поддерживает пользовательскую сериализацию объектов каркаса ALTREP.Эти объекты все еще могут быть сериализованы в формате 2, но менее эффективно.Формат 3 сериализации также записывает текущее собственное кодирование непомеченных строк и преобразует их при десериализации в R, работающем под другим собственным кодированием.Формат 3 поставляется с новыми магическими числами сериализации (RDA3, RDB3, RDX3).Формат 3 может быть выбран версией = 3 в save (), serialize () и saveRDS (), но формат 2 остается значением по умолчанию для всей сериализации и сохранения рабочей области. Сериализованные данные в формате 3 не могут быть прочитаны версиями R до версии 3.5.0.

РЕДАКТИРОВАТЬ

Еще через несколькоЯ думаю, что это ошибка (или особенность?).Для файлов, сохраненных с аргументом compression, равным FALSE, TRUE или gz, код работает должным образом в версии R> = 3.5.Но для сжатия, равного xz, который, кажется, ваш случай, он не работает.

Существует два варианта: либо сохранить файлы со сжатием gz, либо использовать обходной путь из ответа @ user113156.

1 голос
/ 14 июня 2019

Вы можете попробовать это:

Просто убедитесь, что вы установили свой рабочий каталог.

setwd("SET YOUR Working Directory - the file will download here")
working_directory <- getwd()
if (!file.exists("PakPMICS2018bh.RData")) {
  download.file(   "https://github.com/myaseen208/PakPMICS2018Data/raw/master/PakPMICS2018bh.RData",   "PakPMICS2018bhURL.RData")

  load(file.path(working_directory, "PakPMICS2018bhURL.RData"))
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...