readHTMLTable并不总是从谷歌文档电子表格中读取所有表格

时间:2015-02-13 05:23:58

标签: xml r google-docs

我正在尝试从谷歌文档电子表格中导入更新的信息,该电子表格使用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")

1 个答案:

答案 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