如何在 R 中下载 .xlsx 文件并将数据加载到数据框中?

Posted

技术标签:

【中文标题】如何在 R 中下载 .xlsx 文件并将数据加载到数据框中?【英文标题】:How to download an .xlsx file in R and load the data into a dataframe? 【发布时间】:2015-03-04 17:14:09 【问题描述】:

我正在尝试从eia 下载.xlsx 文件并收到以下错误。

错误是:"Error: ZipException (Java): invalid entry size (expected 2385 but got 2390 bytes)"

我尝试了以下代码:

library(XLConnect)
tmp = tempfile(fileext = ".xlsx")
download.file(url = "http://www.eia.gov/petroleum/drilling/xls/dpr-data.xlsx", destfile = tmp)
readWorksheetFromFile(file = tmp, sheet = "Eagle Ford Region", header = FALSE, startRow = 9, endRow = 151)

我尝试过其他建议: Read Excel file into R with XLConnect package from URL

【问题讨论】:

【参考方案1】:

您应该在下载非纯文本文件时使用wb - 二进制模式:

download.file(url = "http://www.eia.gov/petroleum/drilling/xls/dpr-data.xlsx", destfile = tmp, mode="wb")

这将解决问题。

【讨论】:

【参考方案2】:

我参加聚会真的迟到了,但我花了很多时间在同样的错误上,这对我不起作用。如果您只是为了使用read_xlsx 从磁盘加载文件而尝试下载文件,则更好的解决方案是完全跳过磁盘步骤:

# install.packages(rio)
library(rio)

data = rio::import(url)

干杯

【讨论】:

以上是关于如何在 R 中下载 .xlsx 文件并将数据加载到数据框中?的主要内容,如果未能解决你的问题,请参考以下文章

为啥自己的r语言中读不了xlsx文件

将 xlsx 文件加载到猪关系中

r语言 读取xlsx文件,时间变成了43435 怎么解决?

使用R包“google drive”从我的google驱动器加载R文件

PHPExcel - 读取下载的 xlsx 文件

如何将 52.4 MB 的 XLSX 电子表格加载到 BigQuery 中?