Shiny 使用附加信息保存DT表(闪亮)

Shiny 使用附加信息保存DT表(闪亮),shiny,dt,Shiny,Dt,我想知道是否有可能保存DT表内容以及一些不属于数据框/表的附加信息,如应用程序版本号、执行日期、sliderInput值等 谢谢大家! 报告如下: 库(闪亮) 图书馆(DT) ui您可以将数据框的内容和其他信息保存在列表中,然后保存列表 或者,任何R对象都可以具有完全任意且由您控制的属性。您可以设置数据帧的属性来记录所需的信息 就个人而言,我会使用列表方法,纯粹是因为我不喜欢属性 下面是对OP要求的回应 library(shiny) library(DT) ui <- fluidPage

我想知道是否有可能保存DT表内容以及一些不属于数据框/表的附加信息,如应用程序版本号、执行日期、sliderInput值等

谢谢大家!

报告如下:

库(闪亮)
图书馆(DT)

ui您可以将数据框的内容和其他信息保存在列表中,然后保存列表

或者,任何R对象都可以具有完全任意且由您控制的属性。您可以设置数据帧的属性来记录所需的信息

就个人而言,我会使用列表方法,纯粹是因为我不喜欢属性

下面是对OP要求的回应

library(shiny)
library(DT)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      sliderInput(inputId = "range", "Set range", 1, 10, 5, 1),
      actionButton("saveRds", "Save to Rds"),
      actionButton("loadRds", "Load from Rds")
    ),
    mainPanel(
      DT::dataTableOutput("table"),
      wellPanel(h4("Current data"), verbatimTextOutput("text")),
      wellPanel(h4("File data"), verbatimTextOutput("loadedData"))
    )
  )
)

server <- function(input, output) {
  dfr <- data.frame(var1 <- c(1,2,3),
                    var2 <- c(11, 22, 33))

  output$table <- DT::renderDataTable(
    datatable(dfr, extensions = 'Buttons',
              class="cell-border stripe",
              rownames = FALSE, colnames = c("var1", "var2"),
              options = list(dom = "Blfrtip",
                             buttond = list("copy", list(extend = "collection",
                                                         buttons = c("csv", "excel", "pdf"),
                                                         text = "Download")), pageLength=10, autoWidth = TRUE,
                             searchHighlight = TRUE, filter = "top"))
  )

  listInfo <- reactive({
    list("data"=dfr, "version"="WebApp Version 1.0", "runDate"=date(), "sliderValue"=input$range)
  })

  output$text <- renderPrint({
    listInfo()
  })

  observeEvent(input$saveRds, {
    saveRDS(listInfo(), "data.Rds")
  })

  fileData <- reactive({
    req(input$loadRds)
    readRDS("data.Rds")
  })

  output$loadedData <- renderPrint({
    fileData()
  })
}
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(DT)

ui感谢您的建议,我同意,列表将是一个更好的解决方案。我几乎成功了,但不确定如何以合适的表格格式打印数据帧。此外,inputSlides值打印在新行上。你能给个建议吗r output$text谢谢Limey,单独的按钮很好,计划是删除DT表中的按钮,并像您一样使用自定义按钮。