R有光泽,如何正确使用selectInput函数?

时间:2017-02-28 07:15:45

标签: r shiny reactive-programming

我有文件夹(A,B,C)和文件(a,b,c)。这些文件夹都在同一目录中。

每个文件夹都包含所有文件。

示例:FolderA包含文件(A-a,A-b,A-c),FolderB包含文件(B-a,B-b,B-c),FolderC包含文件(C-a,C-b,C-c)。

所以,我想展示一下这些。

这是我想要的输出:

enter image description here

当我选择文件夹B时,我想在(Smaller Category)-selectInput上显示文件夹B的文件列表。如果我按下操作按钮,我想使用反应函数来处理该路径的数据(文件夹B / CsvFile B-c)。

global.R

getFromGlobalR <- memoise(function(path){
       execution code...
}

ui.R

fluidPage(
  titlePanel("selectInput"),
  fluidRow(
    uiOutput("larger_category"),
    uiOutput("smaller_category"),
    uiOutput("action_btn")
  )
)

server.R

executed_statement <- reactive({
    input$action_btn

    isolate({
        if(input$smaller=="") return()
        getFromGlobalR(input$smaller)
    })
})

output$larger_category <- renderUI({
    selectInput("larger", "select folder", choices =list.dirs(path = "./FolderDir", full.names = FALSE, recursive = FALSE))  
})

output$smaller_category <- renderUI({
    selectInput("smaller", "select files", choices = ?)   
})

output$action_btn <- renderUI({
  actionButton("actionBtn", class="btn-primary", "search")
})

我不知道在choices的{​​{1}}参数中放什么。

我尝试使用output$smaller_category。但它没有用。

此外,即使我将choices=list.files(paste("./",input$larger,sep=""), ".csv")参数放在choices中,我也不知道它是否正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

<强>调试

首先,您需要使用browser()或打印值来调试和查看值,例如:

  • 在服务器output$d <- renderPrint(input$larger)

  • 在ui verbatimTextOutput("d")

可能出现的问题

    如果未设置selectInput,则
  • selected默认为单选列表的第一个值。

  • 如果FolderDir具有反应性,则会产生影响。