如何在Shiny R上创建反应式Tabset

时间:2017-05-21 15:40:00

标签: r shiny

我在R上做了一个Shiny App,我想改变一个过滤器取决于“Regiones”,这意味着,我有一个tabsetPanel进入一个TabPanel,

This is my App now

如果我点击“Antioquia”我的服务器.R应该是

  

过滤器(Base,Base ==“Antioquia”)

但是,如果我点击“波哥大”,它应该改为

  

过滤器(Base,Base ==“Bogotá”)

等等......我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

任务是在tabpanel更改时自动过滤数据框。这比人们想象的更难弄清楚。

为了做到这一点,你必须为id定义tabsetPanel,否则就没有任何“反应”。由于通常不需要它,大多数示例都没有id字段,因此很难偶然发现。例如,?tabsetPanel下的帮助中没有记录它。

这是一个可以满足您需求的最小示例。

  • 它会创建一个tabsetPanel,其中包含两个tabPanel s
  • tabsetPanel有一个名为id的{​​{1}}。
  • 它定义了一个名为tabx的数据框,其中包含两种行,“A”和“B”
  • 过滤器值存储为basedf变量中的元素。
  • 它在选项卡更改时设置了该过滤器(reactiveValues语句是必需的,否则内置的被动缓存将导致它只被触发一次。)
  • 有一个反应输出字段可以过滤input$tabx并打印出剩余的内容。

代码:

basedf

这是输出的样子: enter image description here