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的输入