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