Динамическое наименование имени файла загрузки из расширения кнопок DataTable в R блестящий - PullRequest
1 голос
/ 30 октября 2019

У меня есть:


library(shiny)
library(DT)

ui <- fluidPage(
    h2("Explorer"),

    tabPanel(h3("Inspector"),
             p("Overview of data for a particular sample."),
             selectInput(inputId = "sample",
                         label = h3("Select sample"),
                         selectize = TRUE,
                         choices = names(vcf_tibbles)),
             dataTableOutput("sample_inspector")
            )
    )

server <- function(input, output) {
  output$sample_inspector <- DT::renderDataTable(

      sample_overview(sample_id = input$sample, vcf_tibbles = vcf_tibbles),
      rownames = FALSE,
      extensions = 'Buttons',
      options = list(paging = FALSE,
             dom = 'Bfrtip',
             buttons = list( list(extend = 'csv',   filename =  paste("snp", input$sample, sep = "-")),
                     list(extend = 'excel', filename =  paste("snp", input$sample, sep = "-"))))
      )
}

Все отлично работает, в том, что я выбираю образец, и таблица соответственно обновляется. И если я нажимаю CSV или Excel, соответствующие загрузки DTA. Однако имя файла всегда неверно .

Кажется, что содержимое таблицы данных обновляется, но input$sample не рассматривается с кнопками.

Есть ли способ сделать так, чтобы аргумент имени файла в кнопках также был реактивным?

Я пытался сделать имя результатом вызова функции, но не смог заставить его работатьлибо.

Спасибо!

1 Ответ

1 голос
/ 30 октября 2019

Это работает так:

server <- function(input, output) {
  output$sample_inspector <- DT::renderDataTable(
    iris,
    rownames = FALSE,
    extensions = 'Buttons',
    options = exprToFunction(
      list(paging = FALSE,
           dom = 'Bfrtip',
           buttons = list( 
             list(extend = 'csv',   filename =  paste("snp", input$sample, sep = "-")),
             list(extend = 'excel', filename =  paste("snp", input$sample, sep = "-"))))
    )
  )
}
...