问题描述
我的目标是使用我拥有的一些输入来更新一个值框。
这是我的代码
---
title: "Untitled"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
graphics: yes
runtime: shiny
---
```{r setup,include=FALSE}
library(flexdashboard)
library(ggplot2)
library(plotly)
library(DT)
library(htmltools)
library(readr)
library(shiny)
library(knitr)
```
Inputs {.sidebar data-width=300}
=====================================
```{r}
selectInput("input_type","Select Cylinder Size: ",c("All",mtcars$cyl))
selectInput("input_type2","Select # of Gears: ",mtcars$gear))
mtcars2 <- reactive({
d <- mtcars
if(input$input_type !="All")
d <- subset(d,cyl == input$input_type)
if(input$input_type2 !="All")
d <- subset(d,gear == input$input_type2)
d
})
```
# Page 1
Column {data-width=600}
-----------------------------------------------------------------------
### Table
```{r echo=FALSE}
renderDataTable(
datatable(mtcars2())
)
```
Column {data-width=300}
-----------------------------------------------------------------------
### Value Box
```{r}
valueBox(0)
```
我的目标是获得一个值框,我可以在其中根据过滤后的剩余数据获得 hp 的总和。
例如,在此屏幕截图中,我进行过滤以仅看到 6 缸和 3 档的汽车。 我的目标是在值框中查看 hp 的总和。
附加代码
renderValueBox({
valueBox(
mtcars2() %>% summarise(Sum=sum(hp)) %>% pull(Sum),paste("Total HP:",input$input2)
)
})
解决方法
添加
library(dplyr)
到您的 YAML 标头,然后替换
valueBox(0)
与
renderValueBox({
valueBox(
"Total HP",mtcars2() %>% summarise(Sum=sum(hp)) %>% pull(Sum)
)
})
或类似的。