子集由反应式表达式构造的数据框

时间:2016-08-31 16:33:39

标签: r shiny

我遇到闪亮的问题。我有很多输入,我要整理到列表中。然后,我使用cbind()将这些组合成数据框。

我现在要做的是删除第一列中没有值的此数据框的所有行。

在shinyServer中

exposure.df <- reactive({as.data.frame(cbind("Exposure" = exposure.vector(), "NDF?" = exposure.ndf.vector(), "Source" = exposure.source.vector(), "Time" = exposure.time.vector(), "Weight" = exposure.weight.vector()))})

当我尝试将其子集化时:

exposure.df <- reactive({subset(exposure.df(), !(Exposure == ""))})

我收到此错误:

  

警告:错误:评估嵌套太深:无限递归/选项(表达式=)?   没有可用的堆栈跟踪

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你定义了一个被动的exposure.df,然后你试图让它在第二行自己做出反应,从而进行递归。您可以在exposure.df

的定义中添加多行
exposure.df <- reactive({
    df <- as.data.frame(cbind("Exposure" = exposure.vector(), "NDF?" = exposure.ndf.vector(), "Source" = exposure.source.vector(), "Time" = exposure.time.vector(), "Weight" = exposure.weight.vector()))
    subset(df, !(Exposure == ""))
})

然后,上次操作的结果(在本例中为subset)是您在调用被动exposure.df()时获得的结果。

相关问题