4

我正在尝试从此来源http://ec.europa.eu/energy/observatory/reports读取所有欧盟每周石油公报数据文件,特别是文件名中带有“raw_data”的所有 xls 文件。

library(rvest)
library(readxl)
library(tidyverse)

url <- "http://ec.europa.eu/energy/observatory/reports/"
files <- read_html(url) %>% html_nodes("a") %>% .[grepl("raw",.)] %>% html_attr("href")

但是,read_excel 无法正确解析 excel 文件的所有列,并且仅返回第一(日期)列。请参见下面的文件 161 示例。

t <- tempfile(fileext = ".xls")
download.file(paste0(url, files[161]), t, mode="wb")
data <- read_excel(t)
unlink(t)

刚刚返回

A tibble: 126 x 1
`Prices in force on`
<dttm>              
1 2018-03-19 00:00:00 
2 2018-03-19 00:00:00
....

我知道我可以下载所有 xls 文件并使用 excelcnv.exe 将它们转换为 .xlsx 或 .csv 文件,但这相对较慢,最好有一个纯 R 解决方案。知道如何从 excel 文件中读取所有信息吗?非常感谢!

4

0 回答 0