使用Shiny从远程主机读取.RDS文件

时间:2018-03-19 22:16:44

标签: r shiny glm

我将从www.shinyapps.io托管我的第一个闪亮的应用程序。我的脚本使用我在本地创建的glm,我将其存储为.RDS文件。

如何使用免费文件主机(如dropbox或google drive)直接将此文件读入我的应用程序? (或另一种更好的选择?)

test<-readRDS(gzcon(url("https://www.dropbox.com/s/p3bk57sqvlra1ze/strModel.RDS?dl=0")))

然而,我收到错误:

Error in readRDS(gzcon(url("https://www.dropbox.com/s/p3bk57sqvlra1ze/strModel.RDS?dl=0"))) : 
  unknown input format

我认为这是因为网址不直接导致文件,而是dropbox的目标网页?

话虽这么说,我似乎无法找到任何具有该功能的免费文件托管网站。

与往常一样,我确信解决方案非常明显,任何帮助都表示赞赏。

2 个答案:

答案 0 :(得分:0)

我明白了。在GitHub存储库中托管该文件。从那里我可以将链接复制到原始文件,并将该链接放在readRDS(gzcon(url()))包装器中。

答案 1 :(得分:0)

使用 readRDS() 远程阅读可能会令人失望。您可能想尝试使用此包装器将数据集保存到一个临时位置,然后再本地读取:

readRDS_remote <- function(file, quiet = TRUE) {
  if (grepl("^http", file, ignore.case = TRUE)) {
    # temp location
    file_local <- file.path(tempdir(), basename(file))
    # download the data set
    download.file(file, file_local, quiet = quiet, mode = "wb")
    file <- file_local
  }
  readRDS(file)
}