首页 > 解决方案 > ShinyApp 中没有复选框

问题描述

我正在尝试显示一个 csv 文件并创建复选框以允许过滤。该应用程序运行时没有任何错误,但我在复选框所在的位置得到一个空白框。如何让复选框显示?

library(shiny)
library(DT)

df <- read.csv("new_and_deactivated_accounts.csv", header = TRUE)

ui <- fluidPage(

    # Application title
    titlePanel("GIS Workload"),

    sidebarLayout(
        sidebarPanel(
            conditionalPanel(
                'input.dataset === "df"',
                             checkboxGroupInput("checkbox", "Select something",
                                                names(df), selected = names(df))
            )
        ),

        mainPanel(
           tabsetPanel(
               id='df',
               tabPanel(DT::dataTableOutput("mytable1"))
        )
    )
)
)

server <- function(input, output) {

    output$mytable1 <- DT::renderDataTable({
        DT::datatable(df[, input$checkbox, drop = FALSE])
    })
}

# Run the application 
shinyApp(ui, server)

这是显示的一部分,复选框应该是空的,因为它是半私人的,我选择不显示数据,但包括标题。 在此处输入图像描述

标签: rshiny

解决方案


它们在那里,只是在您使用条件面板并且未满足条件时被隐藏。

您可以删除此部分,或确保满足条件:

conditionalPanel('input.dataset === "df"',

这是删除该行的完整代码,并使用 mtcars 代替您的数据:

library(shiny)
library(DT)

df <- mtcars

ui <- fluidPage(

    # Application title
    titlePanel("GIS Workload"),

    sidebarLayout(
        sidebarPanel(
            checkboxGroupInput("checkbox", "Select something",
            names(df), selected = names(df))

        ),

        mainPanel(
           tabsetPanel(
               id='df',
               tabPanel(DT::dataTableOutput("mytable1"))
        )
    )
)
)

server <- function(input, output) {

    output$mytable1 <- DT::renderDataTable({
        DT::datatable(df[, input$checkbox, drop = FALSE])
    })
}

# Run the application 
shinyApp(ui, server)

推荐阅读