Передайте путь к файлу из woolFiles :: woolFileChoose другой функции - PullRequest
0 голосов
/ 12 сентября 2018

RELATED : Показать путь к выбранной папке в Shiny

Я не могу получить путь к файлу от shinyFileChoose, чтобы использовать его в другой функции в любом случае.Я попробовал следующий подход в соответствии с руководством и соответствующей веткой, упомянутой выше, но я все еще ничего не получаю ...

Я просто хочу, чтобы абсолютный путь к файлу выбирался пользователем, чтобы я мог использовать его вмоя программа позже (в нескольких разных функциях).

ui <- fluidPage(

   titlePanel("File Browser"),

   sidebarLayout(
      sidebarPanel(

        shinyFilesButton('files', label = 'Select', title = 'Please select a 
                          file', multiple = FALSE),
        verbatimTextOutput("filechosen")
      ),

      mainPanel(
      )
   )
)


server <- function(input, output) {

   shinyFileChoose(input, 'files', root = c(root = '/home/guest/test_data'),          
   filetypes = c('', "xml", "txt"))

   file <- reactive(input$files)
   output$filechosen <- renderText({
     parseFilePaths(c(home = "/home/guest/test_data"), file())
   })

}   
shinyApp(ui = ui, server = server)

Ошибка: аргумент 1 (тип 'список') не может быть обработан 'cat'

1 Ответ

0 голосов
/ 13 сентября 2018

, поскольку вывод parseFilePaths представляет собой 1 строку dataframe, необходимо указать столбец и изменить его на character, чтобы он мог отображаться в renderText

Попробуйте:

library(shinyFiles)
ui <- fluidPage(

  titlePanel("File Browser"),

  sidebarLayout(
    sidebarPanel(

      shinyFilesButton('files', label = 'Select', title = 'Please select a 
                       file', multiple = FALSE),
      verbatimTextOutput("filechosen")
      ),

    mainPanel(
    )
  )
  )


server <- function(input, output) {

  shinyFileChoose(input, 'files', root = c(root = '/home/guest/test_data'),
                  filetypes = c('', "xml", "txt"))

  file <- reactive(input$files)
  output$filechosen <- renderText({

    as.character(parseFilePaths(c(home = "/home/guest/test_data"),file())$datapath)
    # Either is fine
    # parseFilePaths(c(home = "/home/guest/test_data"),file())$datapath,stringAsFactors=F)
  })

}   
shinyApp(ui = ui, server = server)
...