R Shiny-创建一个表并使用在下拉菜单中选择的数据框数据填充该表

问题描述

我正在通过R&R Shiny继续我的斗争,并有一个疑问。我有一个数据帧列表。我想使用此列表中数据框的名称,以填充selectInput,并基于数据框的选择,我希望能够查看选定的数据框,并查看其列的统计信息。 到目前为止,我已经找到了这段代码

shinyServer(function(input,output) {

    reactive_df <- reactive({
      if(input$x=="All")
        return df
      else
        return(select(df,starts_with(input$x)))
    }

    output$x <- renderDataTable(reactive_df())

}

但是它并不能完全满足我的要求。有人知道如何创建表格和摘要吗?

解决方法

您可以看看mastering shiny

ui <- fluidPage(
  selectInput("dataset",label = "Dataset",choices = ls("package:datasets")),verbatimTextOutput("summary"),tableOutput("table")
)

server <- function(input,output,session) {
  output$summary <- renderPrint({
    dataset <- get(input$dataset,"package:datasets")
    summary(dataset)
  })
  
  output$table <- renderTable({
    dataset <- get(input$dataset,"package:datasets")
    dataset
  })
}

shinyApp(ui=ui,server=server)

如果您有自己的数据集列表,则可以使用[[...]]代替get

datasetlist <- list(iris = iris,mtcars = mtcars)
data <- datasetlist[[input$datasetname]]

例如,如果input$datasetname=='iris',则可以检查是否会将iris分配给data进行进一步处理:

data <- datasetlist[["iris"]]
data

另一个选择是:

data <- eval(parse(text=input$datasetname))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...