我一直在玩R闪亮,并有一个问题。
我想创建一个多标签的多数据集包。由于不同的数据集不是过度相关,我希望用户能够选择他们想要查看的内容,并为此更改可供他们使用的过滤选项。
所以我想要这样的东西,
selectInput("variable", "Variable:",
list(""Cylinders" = "cyl",
"Transmission" = "am"),
if (selectInput == "Transmission") {
sliderInput("integer", "Integer:",
min=0, max=1, value=0) },
else{
sliderInput("decimal", "Decimal:",
min = 0, max = 1, value = 1) }
我如何在Shiny中做一个有条件的?像普通的R条件一样处理它似乎不起作用。
答案 0 :(得分:11)
conditionalPanel
就是你想要的。 http://rstudio.github.com/shiny/tutorial/#dynamic-ui
selectInput("variable", "Variable:",
list(""Cylinders" = "cyl",
"Transmission" = "am"),
conditionalPanel(condition = "input.variable == 'am'",
sliderInput("integer", "Integer:",
min=0, max=1, value=0)),
conditionalPanel(condition = "input.variable == 'cyl'",
sliderInput("decimal", "Decimal:",
min = 0, max = 1, value = 1))
(我实际上并没有尝试过运行此代码,但您应该能够理解这一点)
请注意,conditionalPanel只是隐藏了控件,子控件仍然存在,无论它是否显示。在您的服务器逻辑中,您必须使用if (input$variable == 'am')
来查看您所处的模式(这可能是自然的方式),而不是测试input$integer
或{{1的存在性}}