Проблема чтения xlsx файла, загруженного R - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь прочитать следующий файл в R

https://www.ssga.com/us/en/individual/etfs/library-content/products/fund-data/etfs/us/holdings-daily-us-en-xop.xlsx

Это работает, когда я вставляю URL-адрес непосредственно в браузере, но по какой-то причине когда он загружен через R, он не может быть открыт.

Я попробовал download.file () всеми принятыми методами ('lib-curl / internal / wininet /...')

u <- 'https://www.ssga.com/us/en/individual/etfs/library-content/products/fund-data/etfs/us/holdings-daily-us-en-xop.xlsx'

download.file(u)

Загруженный файл нельзя открыть ни вручную, ни в R с помощью readxl :: read_xlsx () или gdata :: read.xls ()

Я также пробовал пакет httr, но кажется, что тип содержимого 'xlsx : application / vnd.openxmlformats-officedocument.spreadsheetml.sheet 'не поддерживается. Тем не менее, я узнал, что файл, похоже, распакован, но я даже не уверен, что в этом проблема

response <- httr:Get(u)
response$headers$`content-encoding`
"gzip"

Может кто-нибудь подсказать, как я могу загрузить эти данные в R?

1 Ответ

1 голос
/ 20 января 2020

Вам необходимо сохранить его как двоичный файл, используя mode = "wb" в download.file:

u <- 'https://www.ssga.com/us/en/individual/etfs/library-content/products/fund-data/etfs/us/holdings-daily-us-en-xop.xlsx'
tmp <- tempfile() 
download.file(u, tmp, mode = "wb")
readxl::read_xlsx(tmp)

#> # A tibble: 74 x 8
#>    `Fund Name:`     `SPDR® S&P® Oil & Gas~ X__1   X__2   X__3   X__4      X__5  X__6  
#>    <chr>            <chr>                  <chr>  <chr>  <chr>  <chr>     <chr> <chr> 
#>  1 Ticker Symbol:   XOP                    <NA>   <NA>   <NA>   <NA>      <NA>  <NA>  
#>  2 Holdings:        As of 17-Jan-2020      <NA>   <NA>   <NA>   <NA>      <NA>  <NA>  
#>  3 <NA>             <NA>                   <NA>   <NA>   <NA>   <NA>      <NA>  <NA>  
#>  4 Name             Ticker                 Ident~ SEDOL  Weight Sector    Shar~ Local~
#>  5 Apache Corporat~ APA                    03741~ 20439~ 3.668~ Oil & Ga~ 2896~ USD   
#>  6 Occidental Petr~ OXY                    67459~ 26554~ 2.913~ Integrat~ 1639~ USD   
#>  7 WPX Energy Inc.  WPX                    98212~ B40PC~ 2.784~ Oil & Ga~ 5668~ USD   
#>  8 Concho Resource~ CXO                    20605~ B1YWR~ 2.742~ Oil & Ga~ 7852~ USD   
#>  9 EOG Resources I~ EOG                    26875~ 23180~ 2.709~ Oil & Ga~ 8191~ USD   
#> 10 Hess Corporation HES                    42809~ 20237~ 2.689~ Oil & Ga~ 9922~ USD   
#> # ... with 64 more rows
...