【问题标题】:Directly loading .RData from github直接从github加载.RData
【发布时间】:2019-06-14 16:34:31
【问题描述】:

我想从https://github.com/myaseen208/PakPMICS2018Data/ 加载PakPMICS2018bh.RData 数据并使用以下引发错误的代码:

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

加载错误(url(PakPMICS2018bhURL)): 输入不是以与从连接加载兼容的幻数开头

我想知道我的代码有什么问题。请帮忙。

【问题讨论】:

    标签: r url github load


    【解决方案1】:

    问题不在您的代码中,它应该可以正常工作。 这例如从github正常加载一个Rdata文件

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

    您的问题来自您尝试打开的文件,它们以 R 版本 3.5 中引入的序列化格式 3 保存,使用 save(version = 3)

    R 具有支持 ALTREP 框架对象的自定义序列化的新序列化格式(版本 3)。这些对象仍然可以以格式 2 序列化,但效率较低。序列化格式 3 还记录未标记字符串的当前本机编码,并在以不同本机编码运行的 R 中反序列化时转换它们。格式 3 带有新的序列化幻数(RDA3、RDB3、RDX3)。格式 3 可以在 save()、serialize() 和 saveRDS() 中通过 version = 3 来选择,但格式 2 仍然是工作区所有序列化和保存的默认值。 R 版本 3.5.0 之前的版本无法读取格式 3 的序列化数据。

    编辑

    经过更多研究,我认为这是一个错误(或功能?)。 对于使用等于FALSETRUEgzcompression 参数保存的文件,代码在R 版本> = 3.5 中按预期工作。但是对于等于xz 的压缩,这似乎是您的情况,它不起作用。

    有两种选择:要么使用 gz 压缩保存文件,要么使用@user113156 回答中的解决方法。

    【讨论】:

    • 感谢@alko989 的回答。我正在使用R version 3.6.0,那么您对这种情况有何看法?我该怎么办?
    • 我只是在测试它(在 ubuntu 中将 R 更新到 3.5 有点困难),似乎加载功能不适用于新的序列化格式。可能是一个错误。
    【解决方案2】:

    你可以试试这个:

    只要确保你设置了你的工作目录。

    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"))
      } 
    

    【讨论】:

    • 感谢@user113156 的回答。我的代码有什么问题?其实我只是想加载数据而不下载它。请有任何想法。
    • 我不确定我是否理解技术上的区别。在不下载数据的情况下加载数据如何工作?目标是下载到临时文件,还是确保源文件在加载后被删除?
    【解决方案3】:

    如果可以read 而不是load 文件,这对我有用:

    readRDS(url("https://.../FILENAME.rda"))
    

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      相关资源
      最近更新 更多