在R Shiny中创建文件路径列表而不上传文件

时间:2018-01-19 10:37:13

标签: r shiny

我有一个R脚本,通过循环将函数应用于文件夹中的每个文件。该函数采用文件名和扩展名作为输入的完整路径。

使用以下内容创建循环的输入,其中包含要循环的每个文件的完整文件路径:

listBands <- list.files(myInputDir1, full.names = T)

然后循环:

for (i in 1:12) { 
obj <- listbands[i]
function(obj) 
and so on..
}

我想在一个Shiny应用程序中重新创建它,用户可以选择要循环的文件夹,也可以选择文件夹中的所有文件。

到目前为止,我根据这里的另一个问题尝试了这个:

ui <- fluidPage(
  shinyFilesButton("Btn_GetFile", "Choose a file" ,
               title = "Please select a file:", multiple = T,
               buttonType = "default", class = NULL),

textOutput("txt_file")
)


server <- function(input,output,session){

volumes = getVolumes()
observe({
  shinyFileChoose(input, "Btn_GetFile", roots = c(home = '~'), session = 
  session)

if(!is.null(input$Btn_GetFile)){
  # browser()
  file_selected<-parseFilePaths(volumes, input$Btn_GetFile)
  output$txt_file <- renderText(as.character(file_selected$datapath))
  }
 })
}

shinyApp(ui = ui, server = server)

但是这个函数试图上传所有文件,这是不可能的,因为它们太大了,也没有必要。

这个回答:Interactive directory input in Shiny app (R)让我选择目录,但不创建一个可以用作循环输入的列表。

我有一些R的经验,但对Shiny app来说却是一个新手。谁可以帮助我走正确的路?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

shinyDirChoose

您可以使用shinyFiles包中的@Country选择目录。该文件不会上传到此处,您将获得该目录中的所有文件名。

希望它有所帮助!