【问题标题】:Subset a data frame constructed from reactive expressions子集由反应式表达式构造的数据框
【发布时间】:2016-09-01 00:44:29
【问题描述】:

我遇到了闪亮的问题。我有许多输入要整理到列表中。然后我使用cbind() 将它们组合成一个数据框。

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

在闪亮服务器中

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 == ""))})

我收到此错误:

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

有什么想法吗?

【问题讨论】:

    标签: r shiny


    【解决方案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() 时得到的结果。

    【讨论】:

    • 完美运行!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 2014-10-07
    • 2017-09-02
    • 2022-10-13
    • 2011-08-01
    • 2011-08-25
    相关资源
    最近更新 更多