Я создаю блестящее приложение с набором реактивных данных, который выводится в: (1) график и (2) дата (см. Код ниже).
Я успешно вытащил данные. Однако у меня возникают проблемы с сокрытием определенных переменных (или столбцов) в таблице данных, и у меня возникла небольшая проблема эстетики.
Я использую большой набор данных, состоящий из 69 переменных. При фильтрации с использованием трех входов dropdownMenu (см. Код ниже) реактивный набор данных затем подается на график, который показывает количество коммерческих услуг (y) по их общему рейтингу (x) - что здорово.
Однако у меня есть две проблемы, связанные с набором реактивных данных и выходными данными:
(a) На моей вкладке «Данные» я хочу выбрать первые 8 переменных моего набора данных, которые будут видимыми, а остальные 61 - скрытыми. Я пытался ограничить список некоторым кодом (см. Вывод сервера), но данные просто не загружаются.
(b) Когда я выбираю вкладку Datatable, поля с именами переменных непропорционально велики (см. Изображение ниже для пояснения.) Я не пытался решить эту проблему, так как понятия не имею, что это за проблема.
Помощь будет высоко ценится.
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)
Эстетическая проблема с данными