从zip读取csv到闪亮的应用程序,而不依赖于本地目录

时间:2017-07-03 19:07:33

标签: r zip shiny

我已经写了一个闪亮的应用程序(服务器和用户界面),它在我的电脑上运行良好。今天我试图在shinyapps.io上主持它并遇到麻烦。我不能从我的本地机器提取数据,它需要在某处安装在线。但source data仅在线提供拉链。我找到了一些关于如何使用R将zip下载到本地计算机的资源,但他们似乎都需要将文件放在本地临时目录中,我不认为我可以用托管的闪亮应用程序做到这一点。所以我的问题是 如何在R / Shiny中直接解压缩然后访问/加载/使用CSV文件。

相关的代码片段如下。这是我需要更换的部分。让我知道发布更多代码是否有帮助 - 我知道这是预期的,但在这种情况下,我不确定它会有所帮助。

#load data
library(shiny)
base <- read.csv("/Users/OldJess/Dropbox/R Stuff(Home)/ShinyNames/data/NationalNames.csv", 
                 stringsAsFactors = FALSE, 
                 na.strings = c("NA","","#MULTIVALUE"))

我的闪亮应用就在这里:https://jesstme.shinyapps.io/shinynames/

2 个答案:

答案 0 :(得分:1)

让用户使用闪亮的浏览器按钮从本地计算机上传数据然后使用read.table解压缩是否可行?对于read.table功能,请参阅以下答案:https://stackoverflow.com/a/36047026/7860688(为了完整起见,此处复制,假设您在该zip文件中只有一个csv文件):

    data <- read.table("Sales.zip", nrows=10, header=T, quote="\"", sep=",")

可以使用闪亮的fileInput功能上传文件,如下所示:

     fileInput("file1", "Choose CSV File",
    accept = c(
      "text/csv",
      "text/comma-separated-values,text/plain",
      ".csv")
    )

请参阅此处的文档:https://shiny.rstudio.com/reference/shiny/latest/fileInput.html

答案 1 :(得分:0)

我没有意识到Shiny允许我从我的电脑上传原始源数据(作为CSV),以便在我的应用程序中使用,以及ui和amp;服务器文件。有文件大小限制,但解决方案对我来说效果很好。