RShiny应用程序中的良好编码模式?

RShiny应用程序中的良好编码模式?,shiny,shiny-server,Shiny,Shiny Server,在RShiny应用程序中遵循哪些好的编码模式的好资源/示例 我觉得在我正在创建的闪亮应用程序中,我遵循了两种不好的模式 为了让事情对用户的更改做出正确的反应,我似乎最终将server.r的大部分内容包装在observe()中 在每个observe()的开头,如果所有输入中的任何一个发生更改,我希望表达式重新运行 理想情况下,我想把input[change\u set]放在其中,其中change\u set是输入名称的字符向量,但是这会在[.reactivevalues:不允许对reactive

在RShiny应用程序中遵循哪些好的编码模式的好资源/示例

我觉得在我正在创建的闪亮应用程序中,我遵循了两种不好的模式

  • 为了让事情对用户的更改做出正确的反应,我似乎最终将
    server.r
    的大部分内容包装在
    observe()
  • 在每个
    observe()
    的开头,如果所有输入中的任何一个发生更改,我希望表达式重新运行

    • 理想情况下,我想把
      input[change\u set]
      放在其中,其中
      change\u set
      是输入名称的字符向量,但是这会在[.reactivevalues:不允许对reactivevalues对象进行单括号索引。

      • (或者如果我使用
        输入[[change\u set]]
        checkName中的错误:必须使用单个字符串索引到反应值中
    • 我最终要做的是让事情顺利进行,包括多行
      input$var1
      input$var2
      ,…,
      input$var15
      。这感觉非常错误

  • 我没有使用任何函数,比如:
    reactive()
    reactiveValues()
    isolate()
    withReactiveDomain()
    makeReactiveBinding()
    ,……我猜我可能应该这样做,但我不知道如何使用它们


    这个问题的解决方案可能是我重新阅读文档中的小字,并从示例应用程序中读取代码。有人知道这方面的高质量资源吗?

    我一直建议观看这些视频。请记住,Shiny自其第一个版本以来已经发生了很大变化。新功能简化了许多内容ings和一些较旧的函数不像以前那样需要(因为创建了
    observeEvent
    /
    eventReactive
    ,所以我几乎从不使用
    隔离
    )。我一直建议观看这些视频。请记住,Shiny自其第一个版本以来发生了很大变化。新功能简化了很多事情,一些旧功能不再像以前那样需要(因为创建了
    observeEvent
    /
    eventReactive
    ,我几乎从未使用过
    isolate
    )。