【问题标题】:How to pass a reactive integer to a Shiny Dashboard with R如何使用 R 将反应整数传递给闪亮的仪表板
【发布时间】:2018-11-24 03:51:22
【问题描述】:

我正在尝试将一个简单的整数传递给 Shiny Flexdashboard。但由于某种原因,我只能静态地处理它,但我宁愿重新激活它;

aggregated_static <- readRDS( "../rdsdata/aggregated_static.rds")
k <- nrow(aggregated_static)

那段代码将行数传递给我的 Shiny dash,在那里可以访问它;

item_lines = k

但是,如果我这样做,它将不起作用,告诉我无法从该位置访问反应性内容;

set_aggregated <- reactiveFileReader(1000, session,  "./rdsdata/set_aggregated.rds", readRDS)
k <- nrow(aggregated_static())

在没有主动响应上下文的情况下不允许操作。 (你试图做一些只能从反应式表达式或观察者内部完成的事情。)

现在我已经尝试使用 Isolate,创建一个用响应式 ({}) 封闭它的函数,但我只是无法让该值传递。有没有办法做到这一点?

【问题讨论】:

  • 可以定义k并用作data &lt;- reactivevalues(k=0)data$k &lt;-nrow(...)
  • 请提供一个可重现的例子,这将让其他人更好地帮助你。请参阅How to make a Shiny app reproducible example? 了解有关如何操作的一些提示。

标签: r shiny


【解决方案1】:

如果您希望k 的值具有响应性,则应将其包装在reactive() 中,即:

k <- reactive(nrow(aggregated_static()))

然后将其值称为k()

【讨论】:

  • 我已经尝试了提供的代码,但是在set_aggregated &lt;- reactiveFileReader(1000, session, "./rdsdata/hub_set_aggregated.rds", readRDS) 然后k &lt;- reactive(nrow(set_aggregated())) 给出了同样的错误
  • 一切都在你的服务器函数中定义了吗?如果没有,请查看我对该问题的评论并提供可重现的示例,我会再看一下。
猜你喜欢
  • 2014-02-23
  • 2014-01-23
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
  • 2019-05-25
相关资源
最近更新 更多