【问题标题】:R Shiny server variable definition. modified value is not reflectedR Shiny 服务器变量定义。修改后的值不反映
【发布时间】:2019-11-06 06:48:29
【问题描述】:

可能是一个基本问题。但是在网上找不到解决方案。

问题是我想在server.r 中定义一个变量,如下所示

function(input, output, session) {

  currentrunid <- ""

然后在submit 按钮上单击我想为其分配一个值。

  observeEvent(input$submit, {
    currentrunid <- 1234  #Its dynamic

然后在status 按钮上单击我想检索变量的值。该变量用于检索作为提交的一部分生成的文件。

observeEvent(input$checkstatus,{
   runid <- currentrunid
   Getoutputfiles(runid) 

但问题是提交按钮上分配的值在单击状态按钮时不可用。

试过session$currentrunid &lt;- 1234但得到如下错误 cannot add bindings to a locked environment

我使用了&lt;&lt;- 但有人建议我,我不应该使用这个,而是应该使用reactive 变量。但还不能成功实施。

请告诉我这里的最佳做法是什么。或者如何实现reactive

【问题讨论】:

  • output$status &lt;- currentrunid的意图是什么?
  • @StéphaneLaurent 我用 currentrunid 变量创建了一些输出文件和 logfille。我使用这个变量来检查文件是否存在。在示例中,我只给出了一小部分

标签: r shiny reactive


【解决方案1】:

我不明白你想做什么,所以我不确定这个答案是否合适。也许您需要一个响应式值,如下所示:

function(input, output, session) {

  currentrunid <- reactiveVal()

  observeEvent(input$submit, {
    currentrunid(1234) # this assigns 1234 
  })

  # to get the value, do currentrunid(), for example:
  observe({
    print(currentrunid())
  })

  ......

【讨论】:

  • 是的,这就是我要找的。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 2019-03-04
  • 1970-01-01
  • 2021-08-31
  • 2015-06-25
  • 2018-07-17
  • 1970-01-01
相关资源
最近更新 更多