【问题标题】:How to refer to variable of dataset in reactivity如何在反应性中引用数据集的变量
【发布时间】:2020-04-23 04:34:58
【问题描述】:

我正在制作一个闪亮的应用程序。我使用反应性编程来获得更好的功能。但我不知道如何引用作为反应对象的数据集。示例如下:

buffer_bank <- reactive({mydata <-
        merge(buffer_data(), rwa())%>%
        mutate(buff = case_when(REGN %in% (szko$REGN) ~ (buffer + buffer_szko), TRUE ~ buffer))%>%
        select(REGN, buff)
    mydata})

buffer_data()rwa() 是反应性对象,这就是为什么我在这两种情况下都在数据集之后传递了()。但是如何在szko 数据集中引用REGN 变量,这也是反应对象。

我该如何处理这个问题?

非常感谢。

【问题讨论】:

  • @A.Suliman 我已经阅读了这篇文章,但不幸的是我不明白如何解决这个问题。
  • @DavidBijoyan,是否有可能生成一个完整的可重现示例?你的 szko 反应式声明是什么样的? szko()$REGN 带给你什么?

标签: r shiny reactive-programming


【解决方案1】:

这应该可以正常工作。通常,我会在renderTable 中进行正常分配,例如df &lt;- dat(),然后像往常一样使用df,但我认为您有不同的要求。

library(shiny)
shinyApp(
  ui = fluidPage(
    selectInput("variable", "Variable:",
                c("4" = "4",
                  "6" = "6",
                  "8" = "8")),
    tableOutput("data")
  ),
  server = function(input, output) {
    dat <- reactive({
      list(mt=mtcars)
    })

    output$data <- renderTable({
      #browser()
      dat()$mt[dat()$mt$cyl %in% input$variable, ]
      #2nd option given that you defined reactive using dat <- reactive({mtcars})
      #df <- dat()
      #df[df$cyl %in% input$variable, ]
    }, rownames = TRUE)
  }
)

【讨论】:

    【解决方案2】:

    我已经解决了我的问题。解决方案是将() 放入szko()$REGN 语句中。谢谢大家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-12
      • 2016-10-23
      • 2021-07-21
      • 2018-08-28
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 2018-12-28
      相关资源
      最近更新 更多