我使用闪亮的问题。我想选择我想在我的应用程序中使用的所有文件保存的文件夹1)通过将工作目录设置为该文件夹路径或2)将此文件夹中的所有csv数据上传到我的应用程序以进行进一步处理。 1)我找到了shinyFiles包,但它非常慢 - 不是因为我的PC-而且给了我错误:
Warning: Error in dir.create: invalid 'path' argument
Stack trace (innermost first):
59: dir.create
58: dirCreate
57: observerFunc
2: runApp
1: shinyFilesExample
当我选择一个文件夹并且创建文件夹按钮变为可点击时,我将新文件夹的名称放入其中并单击" +"在那个小组下面。谁知道为什么?尽管这种方法有效,但速度非常慢。代码如下:
library(shiny)
library(shinyFiles)
ui<-fluidPage(sidebarLayout(
sidebarPanel(
shinyDirButton("dir", "Chose directory", "Upload")
),
mainPanel(
h4("output$dir"),
verbatimTextOutput("dir"), br()
)
))
server <- function(input,output,session){
# dir
shinyDirChoose(input, 'dir', roots = getVolumes())
dir <- reactive(input$dir)
output$dir <- renderPrint(dir())
}
shinyApp(ui = ui, server = server)
还有其他选择吗?也许通过fileInput
函数上传所有csv数据?或者另一种方式?它不应仅在本地但在服务器上工作,因此choose.dir
可能不是正确的方法。
非常感谢
答案 0 :(得分:1)
到目前为止,据我所知,shinyfiles是输入文件夹的唯一方法。它无法在服务器上运行,因为不允许浏览器选择文件夹(出于安全考虑)。
如果你希望它在服务器上工作,那么压缩方式可能是唯一的方法(但我不知道它是否可以实际完成)
答案 1 :(得分:1)
功能 getwd()获取当前的工作目录。
server <- function(input,output,session){
# dir
shinyDirChoose(input, 'dir', roots = c(name=getwd()))
dir <- reactive(input$dir)
output$dir <- renderPrint(dir())
}