Загрузите файл xlsx с Google Диска в R

#r #google-drive-api

#r #google-drive-api

Вопрос:

Я опубликовал небольшой набор данных на Google Диске и сделал файл доступным для всех, у кого есть ссылка.

Я хочу загрузить этот файл в R для анализа, но у меня возникли трудности с разархивированием файла из каталога temp.

Мой код выглядит следующим образом:

 install.packages("pacman")
library(pacman)
#Load Libraries
pacman::p_load(tidyverse,tidymodels,modeltime,timetk,googledrive)

temp <- tempfile(fileext = ".zip")

dl <- drive_download(
  as_id("https://drive.google.com/file/d/17ZhE3nxqtGYNzeADMzU02YzfKU9H9f5j/view?usp=sharing"),
  path = temp, 
  overwrite = TRUE, 
  type = "xlsx")

out <- unzip(temp, exdir = tempdir())

#Import Data
Three_Time_Series <- read_excel(out[1])
 

Когда я проверяю out переменную, я вижу, что это вектор символов размером 1: 10, но каждая строка символов ссылается на XML-файл. В последней строке я пытался читать, out[1:10] но каждый раз, когда он говорит:

 Error: Can't establish that the input is either xls or xlsx. 
 

Любые советы будут с благодарностью.

Ответ №1:

У вас есть URL-адрес для просмотра, вы должны получить URL-адрес для редактирования / загрузки файла.

Для меня работает следующее.

 library(googledrive)

dl <- drive_download(
 as_id("https://docs.google.com/spreadsheets/d/17ZhE3nxqtGYNzeADMzU02YzfKU9H9f5j/edit#gid=1748893795"),
  path = 'temp1.xlsx', 
  overwrite = TRUE, 
  type = "xlsx")


Three_Time_Series <- readxl::read_excel('temp1.xlsx')
Three_Time_Series

# A tibble: 528 x 3                                                                                                
#   DATE_TIME           CELL  AVG_SIGNAL_LEVEL
#   <chr>               <chr>            <dbl>
# 1 04.21.2017 10:00:00 CELL1            -106.
# 2 04.21.2017 10:00:00 CELL2            -105.
# 3 04.21.2017 10:00:00 CELL3            -105.
# 4 04.21.2017 11:00:00 CELL1            -106.
# 5 04.21.2017 11:00:00 CELL3            -105.
# 6 04.21.2017 11:00:00 CELL2            -105.
# 7 04.21.2017 12:00:00 CELL2            -105.
# 8 04.21.2017 12:00:00 CELL1            -106.
# 9 04.21.2017 12:00:00 CELL3            -105.
#10 04.21.2017 13:00:00 CELL1            -106.
# … with 518 more rows
 

Комментарии:

1. спасибо за вашу помощь, я, должно быть, ссылался на старый пример. Это прекрасно сработало для меня.

2. Вы пробовали googlesheets4 package? Он может считывать данные с вашего Google Диска напрямую, без необходимости загружать их на ваш локальный компьютер.