我正在使用反应性数据集构建一个闪亮的应用程序,该数据集输出到:(1) plot 和(2)一个 datatable (请参见下面的代码) 。 我已经成功提取了数据。但是,我在将某些变量(或列)隐藏在数据表中时遇到了麻烦,并且我在美学方面有一个小问题。
我正在使用由69个变量组成的大型数据集。当使用三个dropdownMenu输入进行过滤(请参见下面的代码)时,反应性数据集将被馈送到该图中,该图通过其总体评分(x)显示了商业服务的数量(y)-很好。
但是,我有两个与反应性数据集和数据表输出有关的问题:
(a)在“数据表”选项卡中,我想选择数据集的前8个变量可见,而其他61个变量隐藏。我试图用一些代码限制列表(请参阅服务器输出),但是数据表只是不加载。
(b)当我选择“数据表”选项卡时,变量名称框过大(请参见下图进一步说明。)我没有尝试解决此问题,因为我不知道问题可能是什么。
我们将不胜感激。
PS。如果有必要我可以提供有关数据的更多详细信息,它太大了,很难给出结构等信息。
UI
ui <- fluidPage(
titlePanel("Test App"),
sidebarLayout(
sidebarPanel(id = "sidebar",
uiOutput("geography1"),
uiOutput("geography2"),
uiOutput("service"),
mainPanel(
tabsetPanel(type = "tabs",
tabPanel("Visual", plotOutput("plot", height = "500px")),
tabPanel("Underlying data", dataTableOutput("table"))
)
)
)
)
)
服务器
server <- function(input, output) {
output$geography1 = renderUI({
selectInput(inputId = "geog1",
label = "Select geography (higher):",
choices = as.character(unique(Test$Geog1)),
selected = "Region")
})
datasub <- reactive({
req(input$geog1)
filter(Test, Geog1 %in% input$geog1)
})
output$geography2 = renderUI({
selectInput(inputId = "geog2",
label = "Select geography (lower):",
choices = unique(datasub()[,"Geog2"]),
selected = unique(datasub()[,"Geog2"])[1])
})
datasub2 <- reactive({
req(input$geog2)
filter(datasub(), Geog2 %in% input$geog2)
})
output$service = renderUI({
selectInput(inputId = "service",
label = "Select Service Type:",
choices = unique(datasub2()[,"Sub_type"]),
selected = unique(datasub2()[,"Sub_type"])[1])
})
datasub3 <- reactive({
req(input$geog2)
filter(datasub2(), Sub_type %in% input$service)
})
# Plot
output$plot = renderPlot({
plot(datasub3(), x = Overall_rating, locations = y)
})
# Generate an data table view of the data ----
output$table <- renderDataTable({
data.table(datasub3(),options=list(columnDefs = list(list(visible=FALSE, targets=c(9:69))))
})
shinyApp(ui, server)