R Shiny - 创建一个 table 并用下拉菜单中选择的数据框数据填充它

R Shiny - create a table and populate it with the data frame data selected in drop down menu

我正在通过 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())

}

但它并不完全符合我的要求。有谁知道如何创建 table 和摘要?

你可以看看 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))