我为我的工作制作了一个相对复杂的 Shiny 应用程序,该应用程序在本地运行良好。但是,我正在尝试托管该应用程序,以便未下载 R Studio 的用户可以访问它。我无法让应用程序通过 Shinyapps.io 运行。似乎这主要与它找不到位于 Dropbox 上的文件有关。该应用程序几乎完全基于在 Dropbox 上加载和写入文件。我尝试更改文件路径并使用 rdrop2 加载文件,但它更改了某些内容的格式,而且据我所知,协调起来非常复杂。我是一个新手程序员,不得不重新构建整个应用程序的想法让我有点焦虑,当然需要相当多的努力。有谁知道更“简单”的 如何通过 Shinyapps.io 上托管的闪亮应用程序修改 Dropbox 上的文件,最好同时仍然能够使用“openxlsx”包?非常感谢您提前。
我认为可能可行但没有解决的一种解决方法是将 Dropbox 文件的文件路径设置为特定于用户,因为使用该应用程序的任何人都应该有权访问 Dropbox:
this.data <- as.data.frame(read.xlsx(paste("C:\Users\", Sys.info()[["user"]], "\Dropbox\rest of the file path", sep = ""))))
免责声明:我不建议依靠谷歌未提交的 URL 来保证隐私。
修改从DropBox的复制替代的共享链接dl=0
通过dl=1
使下载开始,而不是显示在DropBox的UI。
然后你可以在它之前download.file()
进入:tempfile()
read.xlsx()
library(shiny)
library(openxlsx)
library(DT)
ui <- fluidPage(
titlePanel("XL Read from dropbox"),
mainPanel( DTOutput("dt"))
)
server <- function(input, output) {
tmpfile <- tempfile(fileext='.xlsx')
download.file(url = "https://www.dropbox.com/s/1v0l...5u803a9hg/my_file.xlsx?dl=1", destfile = tmpfile , mode="wb")
output$dt <- renderDT(read.xlsx(outfile))
}
shinyApp(ui = ui, server = server)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句