在Shiny中的navbarPage中显示不同数量的tabPanel,没有renderUI或uiOutput

时间:2015-02-09 02:37:03

标签: r shiny

我想在Shiny中的tabPanels中显示1到5 navbarPage

我的代码生成了5个图,但我希望用户能够选择他们想要访问的数量 - 自然地在每个tabPanel中显示一个图。

我有一个外部配置文件(config.txt),通过source('config.txt'),我可以访问number_of_pages变量。

例如,number_of_tabPages <- 3

我如何在UI.R中设置它?

在UI文件中根本无法对tabPanel进行硬编码,因为它取决于用户指定的值,而不是使用控件。

我四处搜寻,发现大多数这种方法的方法 涉及使用uiOutputrenderUI函数,例如此similar问题,但我不希望UI中的任何特殊控件进行任何选择。

当我们根据可能发生变化的值构建UI时,这就变得棘手了。我的大脑正试图围绕做这类事情的最佳方法 - 我觉得这与Shiny想要使用UI&lt; - &gt;与自己沟通的方式不完全一致。服务器环境。

非常感谢任何建议。

我的UI.R在非动态时很容易创建:

fluidRow(
column(12,
       "", 
       navbarPage("",tabPanel("First Tab", 
                              plotOutput("plot1")),

                  tabPanel("Second Tab",
                           plotOutput("plot2")),

                  tabPanel("Third Tab",
                           plotOutput("plot3")),

                  tabPanel("Fourth Tab",
                           plotOutput("plot4")),

                  tabPanel("Fifth Tab",
                           plotOutput("plot5"))
                  )
       )
)
)

谢谢!

1 个答案:

答案 0 :(得分:6)

如果您不需要用户以交互方式更改tabPanel的数量,但只需在应用启动时加载不同数量的数量,您就可以使用{{1}中的do.call功能}}:

navBarPage