我们可以在不应用任何输入的情况下显示表格吗?

时间:2020-02-04 16:54:18

标签: r

下面的

是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))))
)

```

1 个答案:

答案 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))))
)

```