上传至GitHub的RData文件下载后加载报错损坏该如何解决?
问题原因
- 核心原因1:你使用的GitHub链接是文件预览页的HTML页面链接,不是RData二进制文件的直链。你实际下载到本地的是GitHub的网页源代码,而非原始.RData文件,你看到的magic number 'Not F'其实是HTML文件开头
<!DOCTYPE的前几个字节解析结果,完全不匹配RData的格式要求,所以触发报错。 - 次要原因2:
download.file默认在部分系统(尤其是Windows)下以文本模式下载写入,会破坏二进制格式的RData文件结构,即使链接正确也可能出现损坏。 - 额外的代码错误:你示例中写的
read("myfile.RData")是错误用法,加载RData工作空间文件应该使用load()函数。
解决方案
- 替换为原始文件直链
打开GitHub上对应RData文件的页面,点击右上角的「Raw」按钮,复制地址栏的链接,格式应为https://raw.githubusercontent.com/用户名/仓库名/分支名/文件路径/myfile.RData,替换原来的githubURL变量。 - 调整下载参数,指定二进制写入模式
修改download.file的调用参数,增加mode = "wb"强制以二进制模式下载写入文件。 - 使用正确的加载函数
下载完成后调用load("myfile.RData")加载工作空间数据。
修正后的完整示例代码
# 替换为你自己的raw链接 githubURL <- "https://raw.githubusercontent.com/mygit/folde/main/myfile.RData" download.file(githubURL, destfile = "myfile.RData", method = "curl", mode = "wb") load("myfile.RData")
内容的提问来源于stack exchange,提问作者MCS
相关产品推荐
相关产品推荐

