#r #shiny
Вопрос:
Если я выберу tbl1 из выпадающего списка, он должен иметь заголовок tbl1 с данными table1. Если я выберу tbl2, у него должна быть подпись tbl2 с данными tbl2. Я могу правильно извлекать таблицы данных. Как я уже упоминал «Всего tbl1» в подписи, он отображает общее количество tbl1 для всех отчетов. Пожалуйста, помогите мне в этом.
library(shiny)
library(DT)
library(leaflet)
library(dplyr)
ui <- fluidPage(
selectInput(
"FILE",
"Select the Report:",
choices = c("tbl1","tbl2","tbl3")),
checkboxGroupInput(
"col_n",
"Columns to display:",
choices = c() # initialize with empty
),
DT::dataTableOutput("table_data")
)
server <- function(input, output,session) {
df <- reactive ({
switch(input$FILE,
"tbl1" = iris,
"tbl2" = mtcars,
"tbl3" = faithful
)
})
observeEvent(input$FILE,{
req(df())
updateCheckboxGroupInput(
session,
"col_n",
choices = colnames(df()),
selected = colnames(df())
)
})
title <- reactive(
if(input$FILE == "tbl1")
{
paste("total tbl1")
}
else if(input$FILE == "tbl2")
{
paste("dtotal tbl2")
}
)
observeEvent(input$title,
{
updateCaption(proxy,input$title)
}
)
output$table_data <- DT::renderDataTable({
req(input$col_n)
DT::datatable(
df() %>% select_at(input$col_n),
rownames = FALSE,
caption = caption = paste(input$title))
})
}
shinyApp(ui, server)
Ответ №1:
вы можете объявить переменную caption
аргументу datatable
в paste()
таким образом, чтобы получить желаемое решение:
DT::datatable(
df() %>% select_at(input$col_n),
rownames = FALSE,
caption = paste(input$FILE)
})
Комментарии:
1. Пожалуйста, ознакомьтесь с обновленным кодом . Пожалуйста, поправьте меня, где я отсутствую