【发布时间】:2017-12-30 04:35:13
【问题描述】:
我正在尝试创建一个侧边栏,用于输出数据表的列以及每列中唯一值的数量。下面的代码适用于名称,但是当涉及到唯一值时,如果列表变量是 unlist()ed,我只能显示它。我找不到任何关于获取 textOutput 或等效项来处理跨多行的列表变量的文章。
library(shiny)
data(mtcars)
if (interactive()) {
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fluidRow(
column(6, checkboxGroupInput("dsnamesGrp","Variable name")),
column(6, uiOutput("dsordsGrp"), inline= FALSE)
)
),
mainPanel(
dataTableOutput('contents'))
)
)
server <- function(input, output, session) {
output$contents <- renderDataTable({mtcars})
dsnames <- list()
dsnames <- names(mtcars)
cb_options <- list()
cb_options[dsnames] <- dsnames
updateCheckboxGroupInput(session, "dsnamesGrp",
label = "Column name",
choices = cb_options,
selected = "")
ord_values <- list()
ord_values <- lapply(mtcars, function(x)length(unique(x)))
output$dsordsGrp <- renderText({unlist(ord_values)})
}
}
shinyApp(ui, server)
【问题讨论】: