我希望能够在我闪亮的应用程序的信息框中显示数据集每一列的汇总统计数据。我的应用程序允许用户上传他们自己的数据集,每个列都有不同的标题,所以我不能手动创建信息箱-它们应该从任何上传的数据集创建。到目前为止,我有以下代码:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Dynamic boxes"),
dashboardSidebar(),
dashboardBody(
fluidRow(
verbatimTextOutput("summaryBasicStats"),
uiOutput("ibox")
)))
server <- function(input, output) {
############ Basic Stats Events ############
# Return the requested dataset ----
datasetInputBasicStats <- reactive({
mtcars
})
# Generate a summary of the dataset ----
output$summaryBasicStats <- renderPrint({
dataset <- datasetInputBasicStats()
summary(dataset)
})
output$ibox <- renderUI({
list(
infoBox(
"Title",
5,
icon = icon("credit-card")
),
infoBox(
"Title",
5,
icon = icon("credit-card")
),
infoBox(
"Title",
4,
icon = icon("credit-card")
)
)
})}
shinyApp(ui, server)发布于 2019-07-08 03:59:19
基本上,您需要在表的摘要上生成带有lapply的infoBoxes列表。以下是一种方法:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Dynamic boxes"),
dashboardSidebar(),
dashboardBody(
fluidRow(
uiOutput("ibox")
)))
server <- function(input, output) {
############ Basic Stats Events ############
# Return the requested dataset ----
datasetInputBasicStats <- reactive({
mtcars
})
sumdiplay = reactive({
plouf <- summary(datasetInputBasicStats())
info <- lapply(colnames(plouf),function(coln){
infoBox(
coln,
paste0(plouf[,coln],collapse = "\n"),
icon = icon("credit-card"),
width = 6
)
})
return(info)
})
output$ibox <- renderUI({
sumdiplay()
})}
shinyApp(ui, server)我使用lapply中的列名列表来获得infoBoxe中的列名:

https://stackoverflow.com/questions/56925123
复制相似问题