首页 > 解决方案 > R 中的 load(url(....)) 与 download.file。为什么后者在下载 .Rdata 文件时不起作用?

问题描述

我正在阅读我的一些旧 R 笔记,我面临着一些让我感到困惑的事情。在这里您可以找到一个带有 .Rdata 扩展名的虚拟数据库。

当我使用load+url时,数据库已下载并正确读取:

load(url("http://d396qusza40orc.cloudfront.net/statistics%2Fproject%2Fgss.Rdata"))
str(gss)

但是当我尝试使用来完成同样的事情时download.filereadRDS我得到了一个错误:

URLtest <- "http://d396qusza40orc.cloudfront.net/statistics%2Fproject%2Fgss.Rdata"
download.file(URLtest,"myfile", method="curl")
readRDS("myfile)
Error in readRDS ("myfile"): unknown input format

我打电话的原因readRDS可以在这里找到。

所以如果load不建议因为它的副作用(例如默默地覆盖文件),为什么它在这种情况下会起作用?

任何参考和评论将不胜感激。

标签: rfunctionurldownload

解决方案


如果文件是用 创建的save(),那么您需要使用load()来打开它。如果它是用创建的saveRDS(),那么您可以使用readRDS()它来加载它。您不能同时使用load()和打开同一个文件readRDS()——它们是两种不同的文件格式。习惯上为使用创建的文件和使用.Rdata创建的文件使用扩展名。save().rdssaveRDS()


推荐阅读