如何将闪亮的输入值转换为闪亮的输出表

时间:2015-01-27 09:10:48

标签: r shiny

我有一个有很多输入值的闪亮应用。我希望输入值易于使用和/或可导出,所以我想把它们放到表格格式中。

以前,我有data.table(a=input$a,b=input$b,...),但这不是一种非常有效的做事方式。

目标

在表格输出中显示所有输入值,而不必手动编写每个输入变量

背景

闪亮的输入对象属于str

List of 1
 $ impl:Classes 'ReactiveValues', 'R6' <environment: 0xf798e60> 
 - attr(*, "readonly")= logi TRUE
 - attr(*, "class")= chr "reactivevalues"
  • rbindlist会导致错误:Item 1 of list input is not a data.frame, data.table or list
  • 同样as.data.frame获取:cannot coerce class ""reactivevalues"" to a data.frame
  • 然后,我发现ReactiveValuesToList()文档的说法与as.list()类似,但对象不会转换为内部rbindlist()

MWE

server <- function(input, output) {
  output$distPlot <- renderPlot({
    hist(rnorm(input$obs), col = 'darkgray', border = 'white')
  })

  # This is the bit I'm having trouble getting to work
  output$inputvals<-renderTable({
    as.data.frame(reactiveValuesToList(input))
  })
}

ui <- shinyUI(fluidPage(
  sidebarLayout(
    sidebarPanel(
      sliderInput("obs", "Number of observations:", min = 10, max = 500, value = 100)
    ),
    mainPanel(plotOutput("distPlot"), tableOutput("inputvals"))
  )
))

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:5)

要将闪亮的反应对象转换为R中的“标准”对象,请使用函数shiny::reactiveValuesToList()将函数S6类更改为标准列表对象。

然后可以将其包含在as.data.frame或类似于胁迫表格中。