R and Shiny:使用反应函数的输出

Posted

技术标签:

【中文标题】R and Shiny:使用反应函数的输出【英文标题】:R and Shiny: Using output of a reactive function 【发布时间】:2014-09-06 21:53:08 【问题描述】:

目前我有一个在闪亮服务器中创建的函数 [degtest],它返回一个列表,

return(list(datatable=datatable, predicttable=predicttable, esttable=esttable)

我希望在函数运行后可以访问此列表,以便我可以使用列表的不同部分分别呈现。

 outlist <- reactive(
   if(is.null(input$file2))return(NULL)
   if(input$d2 == 0)return(NULL)
   with(data = reactdata$degdata, degtest(reactdata$degdata[,input$selectTemp], reactdata$degdata[,input$selectPot],reactdata$degdata[,input$selectWeight], reactdata$degdata[,input$selectTime], input$Temp0))
   )

input$file2 是我的 reactdata(reactdata$degdata 和 input$d2 是一个操作按钮。

我以为我可以引用 outlist$datatable 但 R 说“'closure' 类型的对象不是子集”

【问题讨论】:

【参考方案1】:

当你创建一个对象reactive 时,你实际上是在把它变成一种函数(closure),所以你必须将它用作outlist() 而不是outlist。请参阅this 类似问题。考虑到您没有provide a reproducible example,很难回答您的问题,但我认为您的解决方案类似于outlist()$ObjectYouAreTryingToAccess

【讨论】:

感谢您的解释,它奏效了,帮助我理解了它。只需将 () 添加到我试图引用它的地方就可以了。谢谢你的帮助。

以上是关于R and Shiny:使用反应函数的输出的主要内容,如果未能解决你的问题,请参考以下文章

使用inputBox的输出作为R Shiny中inputSlider的输入

如何根据 R Shiny 中的单选按钮显示输出?

将反应输入传递到 R Shiny 中的绘图轴

R Shiny:使用来自反应函数的数据制作反应图

创建可以输出多种文件类型R Shiny的downloadButton

在 R/Shiny 中将输出组件设置为空