我正在尝试从谷歌文档电子表格中导入更新的信息,该电子表格使用R包XML以不定时的方式更新。由于某种原因,它有时只读取第一张纸,有时读取所有纸张(本文件中有25张)。另外需要注意的是,电子表格中有希伯来语,而且大部分时间都没有正确编码。
url="https://docs.google.com/spreadsheets/d/13XIAgbVk_c2Zxxa5xsR0EJFb6W9HMQpAjBImtFxZdxo/"
Sys.setlocale("LC_ALL", "Hebrew")
readGoogleSheet <- function(url, na.string="", header=TRUE){
require(XML)
doc <- paste(readLines(url), collapse=" ")
htmlTable <- gsub("^.*?(<table.*</table).*$", "\\1>", doc)
ret <- readHTMLTable(htmlTable,
header=T,
stringsAsFactors=FALSE,
as.data.frame=TRUE,
.Encoding="UTF-8")
答案 0 :(得分:2)
上面评论中提到的软件包现在可以使用,并已重命名为googlesheets
:
https://github.com/jennybc/googlesheets
此代码段将安装软件包,将工作表复制到您的Google云端硬盘,将其注册以进行访问,并将数据从一个标签或工作表导入到本地data.frame:
devtools::install_github("jennybc/googlesheets")
gap_key <- "1HT5B8SgkKqHdqHJmn5xiuaC04Ngb7dG9Tv94004vezA"
copy_ss(key = gap_key, to = "Gapminder")
gap <- register_ss("Gapminder")
oceania <- get_via_csv(gap, ws = "Oceania")
oceania