читать в опубликованном Google Sheet без загрузки или аутентификации - PullRequest
0 голосов
/ 02 ноября 2018

Я опубликовал Google Sheet (через «Публикация в Интернете») с несколькими листами, и я хочу прочитать их в R. без загрузки.

Если бы у меня был только один лист, SheetA, read.csv сделали бы свое дело. Это работает:

sheetA <- read.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQctdWKg1rPRdpaOCZhhehYdWL51AaddThDT44-JUpYHUaPpnW6j83pWtbXCRfUPeVXiMI2boSwoRZY/pub?output=csv")

Но у меня есть несколько листов, поэтому я попытался readxl с output=xlsx концом URL. Это не работает, потому что URL не является допустимым путем:

library(readxl)
sheetA <- read_excel("https://docs.google.com/spreadsheets/d/e/2PACX-1vQctdWKg1rPRdpaOCZhhehYdWL51AaddThDT44-JUpYHUaPpnW6j83pWtbXCRfUPeVXiMI2boSwoRZY/pub?output=xlsx", 
                     sheet="sheetA")

Если есть способ прочитать конкретный лист из опубликованного Google Листа, который похож на read.csv (без временного файла)? Я попытался поделиться листом (через Общий доступ, а не Опубликовать в Интернете) и использовать googledrive::drive_get(as_id(myURL)), но мне потребовалась аутентификация, и я не хочу этого делать. Может быть, я не правильно использую googledrive.

1 Ответ

0 голосов
/ 02 ноября 2018

Мне повезло с пакетом googlesheets. Сначала вам нужно будет ввести ключ для листа, который требует аутентификации. Но как только у вас есть ключ, пока лист является открытым / опубликованным, вам не нужно будет проходить аутентификацию.

library(tidyverse)
library(googlesheets)

#list all sheets, will require authentication
my_key <- gs_ls() %>% 
  #filter to the sheet you're interested in and grab the key
  filter(sheet_title == "My Sheet Title") %>% 
  select(sheet_key)

#using the key, you can grab public/published worksheets without authentication
gs_key(my_key$sheet_key) %>%
  gs_read(ws = "Worksheet Name")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...