R工作室闪亮的条件陈述

时间:2012-11-09 18:02:37

标签: r shiny

我一直在玩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条件一样处理它似乎不起作用。

1 个答案:

答案 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的存在性}}