-input上的闪亮条件选项卡 -

时间:2016-02-13 18:36:48

标签: r shiny

我有输出图的条件选项卡,通过在server.R端构造图输出$ VtPlot [1:n],然后用:

组装到tabsetPanel中。
output$plotTabs = renderUI({
    nTabs <- as.numeric(input$nTraces)
    plotTabs <- lapply(paste0('VtPlot', 1:nTabs),function(nm)tabPanel(nm,plotOutput(nm)))
    do.call(tabsetPanel, plotTabs)
})

在输入端的第1个(始终显示)选项卡上输入$ nTrace条目。这些潜在图中的每一个都由来自输入选项卡的条目构成,这些条目对应于数字。

mainPanel(
  uiOutput('plotTabs')
)
ui.R

中的

但是,我继续努力让-input- tabs以input$nTrace为条件。

我尝试在tabPanelsui.R两侧建立server.R几种不同的方式并捆绑do.call,到目前为止没有运气。我假设我错过了一些明显的东西? 感谢

1 个答案:

答案 0 :(得分:0)

是您期望的Conditional Panel吗?

  

创建一个可见或不可见的面板,具体取决于JavaScript表达式的值。 JS表达式在启动时和Shiny检测到输入/输出的相关变化时评估一次。

以下代码来自?conditionalPanel,您的"input.plotType == 'hist'"代码为"input.nTraces== 1"(因为这里的条件是javascript样式):

sidebarPanel(
   selectInput(
      "plotType", "Plot Type",
      c(Scatter = "scatter",
        Histogram = "hist")),

   # Only show this panel if the plot type is a histogram
   conditionalPanel(
      condition = "input.plotType == 'hist'",
      selectInput(
         "breaks", "Breaks",
         c("Sturges",
           "Scott",
           "Freedman-Diaconis",
           "[Custom]" = "custom")),

      # Only show this panel if Custom is selected
      conditionalPanel(
         condition = "input.breaks == 'custom'",
         sliderInput("breakCount", "Break Count", min=1, max=1000, value=10)
      )
   )
)