Как прочитать один файл веб-страницу / файл архива Excel в R - PullRequest
1 голос
/ 08 апреля 2019

Возможно ли прочитать этот файл в R без необходимости вручную открывать файл и сохранять его как файл Excel. Ниже показано, что этот файл на самом деле не является файлом Excel.

https://www.sec.gov/Archives/edgar/data/320193/000119312511192493/Financial_Report.xls

url <- "https://www.sec.gov/Archives/edgar/data/320193/000119312511192493/Financial_Report.xls"
temp_xls <- tempfile(fileext = ".xls")
download.file(url, destfile = temp_xls, mode = "wb")

readxl::format_from_signature(temp_xls)
#> [1] NA

readr::read_lines(temp_xls, n_max = 5)
#> [1] "MIME-Version: 1.0"                                                                                                                                                                                                                                               
#> [2] "X-Document-Type: Workbook"                                                                                                                                                                                                                                       
#> [3] "Content-Type: multipart/related; boundary=\"----=_NextPart_e3144909_1d60_4840_908e_3419ae0a14d3\""                                                                                                                                                               
#> [4] ""                                                                                                                                                                                                                                                                
#> [5] "This document is a Single File Web Page, also known as a Web Archive file.  If you are seeing this message, your browser or editor doesn't support Web Archive files.  Please download a browser that supports Web Archive, such as Microsoft Internet Explorer."


unlink(temp_xls)

1) Есть ли какое-либо текущее решение для чтения этого файла в R

2) Можно ли автоматизировать открытие файла вручную и сохранение его в формате, доступном для чтения в R

1 Ответ

2 голосов
/ 08 апреля 2019

Возможным решением является использование httr:

library(httr)
library(XML)
library(magrittr)
h <- GET("https://www.sec.gov/Archives/edgar/data/320193/000119312511192493/Financial_Report.xls") %>% 
    content("text", encoding="UTF8") %>% 
    readHTMLTable()   

edit: добавить версию, в которой имена таблиц используются как имена для таблиц

library(httr)
library(XML)
library(xml2)
library(magrittr)
ctnt <- GET("https://www.sec.gov/Archives/edgar/data/320193/000119312511192493/Financial_Report.xls") %>% 
    content("text", encoding="UTF8") 
tbls <- readHTMLTable(ctnt)   
tbls <- tbls[names(tbls)!="NULL"]
names(tbls) <- read_html(gsub("<!--[if gte mso 9]>", "", ctnt, fixed=TRUE)) %>% 
    xml_find_all(".//name") %>% 
    xml_text()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...