是reprex代码。代码很好,但是实际上,一旦我打开应用程序,我只需要显示两行虹膜表(就像这应该是强制性的,没有任何过滤和提交按钮)。然后按照过滤器和提交按钮显示表格。我们能做到吗?
---
title: "Untitled"
runtime: shiny
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
---
```{r setup, include=FALSE}
library(flexdashboard)
library(dplyr)
library(DT)
library(shinycssloaders)
library(DT)
library(rhandsontable)
library(shinyjs)
library(dplyr)
library(shiny)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Chart A
```{r}
selectInput("Tic","",choices = c("","ALL",as.character(iris$Species)),selected = NULL)
actionButton("Submit","Submit")
textOutput("Total")
tableOutput("SUMMARY_GENERAL_table")
data1 <- eventReactive(input$Submit,{
if(input$Tic == "ALL"){
table_display <- iris
}
else {
table_display <- iris %>% filter(Species %in% input$Tic)
}
})
output$SUMMARY_GENERAL_table <- renderTable(
data1()
)
output$Total <- renderText(
paste0("Sum ",formatC(as.numeric(sum(data1()[(data1()$Species == "setosa"),]$Sepal.Width))))
)
```
答案 0 :(得分:0)
这应该起作用:我首先定义data1
,但无需按“提交”。然后,我详细介绍了该表的两个表达式:一个未单击“提交”时的表达式,另一个当单击了“提交”时的表达式。
---
title: "Untitled"
runtime: shiny
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
---
```{r setup, include=FALSE}
library(flexdashboard)
library(dplyr)
library(DT)
library(shinycssloaders)
library(DT)
library(rhandsontable)
library(shinyjs)
library(dplyr)
library(shiny)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Chart A
```{r}
selectInput("Tic","",choices = c("","ALL",as.character(iris$Species)),selected = NULL)
actionButton("Submit","Submit")
textOutput("Total")
tableOutput("SUMMARY_GENERAL_table")
data1 <- reactive({
if (input$Tic != "ALL"){
table_display <- iris %>% filter(Species %in% input$Tic)
}
else{
table_display <- iris
}
})
output$SUMMARY_GENERAL_table <- renderTable({
iris
})
observeEvent(input$Submit, {
output$SUMMARY_GENERAL_table <- renderTable({
data1()
})
})
output$Total <- renderText(
paste0("Sum ",formatC(as.numeric(sum(data1()[(data1()$Species == "setosa"),]$Sepal.Width))))
)
```