我想在Shiny中的tabPanels
中显示1到5 navbarPage
。
我的代码生成了5个图,但我希望用户能够选择他们想要访问的数量 - 自然地在每个tabPanel
中显示一个图。
我有一个外部配置文件(config.txt
),通过source('config.txt')
,我可以访问number_of_pages
变量。
例如,number_of_tabPages <- 3
我如何在UI.R
中设置它?
在UI文件中根本无法对tabPanel进行硬编码,因为它取决于用户指定的值,而不是使用控件。
我四处搜寻,发现大多数这种方法的方法
涉及使用uiOutput
和renderUI
函数,例如此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"))
)
)
)
)
谢谢!
答案 0 :(得分:6)
如果您不需要用户以交互方式更改tabPanel
的数量,但只需在应用启动时加载不同数量的数量,您就可以使用{{1}中的do.call
功能}}:
navBarPage