5

我一直在玩 R shiny,有一个问题。

我想创建一个多选项卡多数据集包。由于不同的数据集并没有过度相关,我希望用户能够选择他们想要查看的数据集,并为此更改可供他们使用的过滤选项。

所以我想要这样的东西,

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 条件似乎不起作用。

4

1 回答 1

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$integeror的存在input$decimal

于 2012-11-09T21:03:21.227 回答