如何从反应式光泽用户界面中指定的文件夹中读取数据集?

时间:2019-04-19 21:44:12

标签: r shiny shiny-server shiny-reactivity

我有多个包含.sas7bdat个文件的文件夹。我想创建一个闪亮的应用程序,在其中我想通过selectInput函数中的renderUI提供文件夹名称。我找到了一个答案,可以从中找到可以选择文件夹的部分,但是现在我想读取文件夹中的数据并对其进行分析。

我尝试使用从dir函数生成的输出,但是它不起作用。请在下面查看我的代码。

library(shiny)

  ui <- fluidPage(

    titlePanel("Folder Selector"),
      fluidRow(
          sidebarPanel(
            uiOutput("select.folder")
          ),

          mainPanel(
            h4("output$dir"),
            verbatimTextOutput("dir"),br()
          )
      )
  )

  server <- function(input, output){

    root <- 'C:/Users/Username/Documents/Mylearnings/data'

    output$select.folder <- renderUI(expr = selectInput(inputId = 'folder.name',
                                                        label = 'Folder Name',
                                                        choices = list.dirs(path = root,
                                                                            full.names = FALSE,
                                                                            recursive = FALSE)))

    dir <- reactive({
          paste0(root,input$folder.name)
    })

    output$dir <- renderPrint(dir())
  }

input.sas <- function(ds)(
      read_sas(str_c(dir,"/",ds,".sas7bdat"))
    )

    a <- input.sas(data_a)
}

shinyApp(ui = ui, server = server)

例如,如果我删除了上述代码的以下部分,那么结果将按预期在output$dir中出现,

input.sas <- function(ds)(
      read_sas(str_c(dir,"/",ds,".sas7bdat"))
    )

    a <- input.sas(data_a)

但是我希望将其输出存储在dir中,并可以通过str_c函数进行传递。

它给了我以下错误。

Error in stri_c(..., sep = sep, collapse = collapse, ignore_null = TRUE) : 
  object 'data_a' not found

我们非常感谢您的帮助。预先谢谢你。

0 个答案:

没有答案