我正在尝试组合我的第一个 flexdashboard。(有关我正在使用的数据的概述,请参见此处)
我希望仪表板能够显示每个设施的汇总数据,或者将其分解为单个药物。
我到目前为止的代码是:
Inputs {.sidebar}
-----------------------------------------------------------------------
```{r}
selectInput("hosp",
label = h4("Select hospital:"),
choices = list("Hospital 1" = "hosp1",
"Hospital 2" = "hosp2"), selected = "hosp1")
sliderInput("dates",
label = h4("Select dates:"),
min = as.Date("2006-01-01"), max = as.Date("2015-12-01"),
value = c(as.Date("2006-01-01"), as.Date("2015-12-01")),
timeFormat = "%b-%Y")
````
Row
-----------------------------------------------------------------------
### Usage Graph
```{r}
renderPlot({
p <- ggplot(data = summarise(group_by(filter(usage,
hospital == input$hosp, date > as.Date(input$dates[1])
& date < as.Date(input$dates[2])), date),
total = round(sum(usage))), aes(x = date, y = total))
+ geom_line()
p
})
```
这很好用——我有一个医院的下拉菜单,可以使用滑块选择日期范围。
我想做的是添加两个不同的下拉菜单;一个选择图表类型(总使用量、单个药物、药物类别)
我尝试这样做的方法是:
selectInput("gtype",
label = h4("Select graph type:"),
choices = list("Total Use" = "abxa",
"By Class" = "abxc",
"By Agent" = "abxd"), selected = "abxa")
conditionalPanel("input.gtype == 'abxd'",
selectInput("abagent",
label = h4("Select Agent:"),
choices = list("Amoxycillin" = "amoxycillin",
"Co-amoxyclav" = "amoxicillin-clavulanate",
"Cephazolin" = "cefazolin",
"Gentamicin" = "gentamicin"), selected = "cefazolin"
这在侧边栏中效果很好 - 选择“按代理”会弹出下一个列表框,其中包含药物选择,让我选择一个。
但是如何更改图形面板中的输出?
我需要为每个用例稍微更改 ggplot 调用;有没有办法根据下拉的结果呈现不同的情节?
我试过使用:
conditionalPanel("input.type" == "abxa",
renderPlot({ plot 1 call })
)
conditionalPanel("input.type" == "abxd",
renderPlot({ plot 2 call })
)
但这会导致无论侧边栏设置如何,都不会出现任何绘图(我已经确认如果您单独使用这两个 renderPlot 调用有效)
提前致谢。