如何将闪亮的输入值转换为闪亮的输出表
Posted
技术标签:
【中文标题】如何将闪亮的输入值转换为闪亮的输出表【英文标题】:How to convert shiny input values into a shiny output table 【发布时间】:2015-01-27 09:10:47 【问题描述】:我有一个闪亮的应用程序,它有很多输入值。我希望输入值易于阅读和/或导出,因此我想将它们放入表格格式。
以前,我有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)
【问题讨论】:
它对我有用。你用的是什么版本的shiny
?
shiny_0.10.2.2 - 现在将清理我的环境位并发布完整的 sessionInfo()
完全清除并且成功了,讨厌的 PICNIC。
【参考方案1】:
要将 Shiny 中的反应性对象转换为 R 中的“标准”对象,请使用函数 shiny::reactiveValuesToList()
将 S6 类更改为标准列表对象。
然后可以将其包装在 as.data.frame
中或类似强制到表格中。
【讨论】:
以上是关于如何将闪亮的输入值转换为闪亮的输出表的主要内容,如果未能解决你的问题,请参考以下文章