Создание реактивных ActionButtons в приложении Shiny - PullRequest
0 голосов
/ 30 ноября 2018
library(shiny)

# ui ##########################

ui <- fluidPage(

   fileInput("csv", label="",
      multiple = TRUE,
      accept = c("text/csv", ".csv")),

   tags$hr(),

   actionButton("show.tbl", "SHOW TABLE"),

   tableOutput("my_tbl")
   )


# server #########################

server <- function(input, output) {

   tbl <- data.frame(Example = LETTERS[1:10]) # will be reactive in reality

   output$my_tbl <- renderTable({
      if(input$show.tbl == 1)
         tbl
    })
 }

# app ######################

shinyApp(ui, server)

В результате я хочу иметь этот столбец с двумя кнопками в каждой строке.Первая кнопка должна фильтровать входной файл и показывать результирующую таблицу.Вторая кнопка должна выполнить сложный алгоритм проверки.

Как реактивно добавить кнопки actionButtons к tableOutput?

Решение будет революционным в моей блестящей вселенной.ТНХ

1 Ответ

0 голосов
/ 03 декабря 2018

Обработка с использованием DT:

library(shiny)
library(DT)

ui <- fluidPage(
    verbatimTextOutput(outputId = 'vb'),
    dataTableOutput(outputId = 'table')
)

server <- function(input, output, session) {

    yourData <- reactive({
        return(mtcars)
    })

    output$vb <- renderPrint({
        req(input$table_rows_selected, cancelOutput = TRUE)
        row_id <- input$table_rows_selected

        row_selected <- yourData()[row_id,]

        return(row_selected)
    })

    output$table <- renderDataTable({

        datatable(
            data = yourData(),
            selection = 'single'
        )
    })
}

shinyApp(ui, server)

Это не actionButton для каждой строки, но вы можете наблюдать событие выбора строки и что-то с этим делать ... В этом примере я просто печатаю строку, но вымогу делать все, что захочешь ..

Надеюсь, это поможет.

...