【问题标题】:R Shiny - create a table and populate it with the data frame data selected in drop down menuR Shiny - 创建一个表并使用下拉菜单中选择的数据框数据填充它
【发布时间】:2021-01-01 13:39:25
【问题描述】:

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

}

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

【问题讨论】:

    标签: r dataframe shiny dropdown datalist


    【解决方案1】:

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

    【讨论】:

    • 嗨,Waldi,非常感谢。我有自己的数据框列表,我想这样称呼它们:名称(列表)。如果没有必要,我不想指定嵌套在那里的每个数据框
    • 如果你已经有一个列表,那就完美了,choices=names(mylist) in selectInput 然后你就得到了mylist[[input$dataset]]显示的数据
    猜你喜欢
    • 2022-11-17
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 2018-10-22
    • 2012-08-03
    • 1970-01-01
    • 2012-10-06
    • 2012-07-24
    相关资源
    最近更新 更多