如何使用googlesheets4
R 包进行单个 API 调用以检索在特定 Drive 目录中找到的所有电子表格?
目前,我在共享的 Google Workspace Drive 文件夹中列出了可供我使用的电子表格,drive_ls
然后遍历它们(使用lapply
)从每个电子表格中逐一下载特定范围:
# Read Data from Google Workspace Drive -----------------------------------
DIRECTORY_id <- "[REDACTED]" # directory
focalfiles_ss <- drive_ls(path = as_id(DIRECTORY_id), type = "spreadsheet")
read_sheet_wrapper <- function(ss) {
row_offset = 14; N_max = 100
data_range <- cell_limits(c(row_offset, 4), c(row_offset+N_max-1, 5))
read_sheet(ss, "MySheet", data_range, col_names = c("A", "B"))
}
# Pull down data from Workspace Drive
focalfiles <- lapply(focalfiles_ss$id, read_sheet_wrapper)
names(focalfiles) <- focalfiles_ss$name
focalfiles
这样做的问题是我进行了几个 API 调用,这很慢,尤其是因为调用偶尔会在后台自动暂停gargle
以避免达到速率限制。
如果它有助于简化解决方案,如代码所示,我想强加的范围限制和其他细节在电子表格中是相同的(尽管我想保留read_sheet_wrapper
函数的细节,而不是进行简单的read_sheet
调用)。