我有一个根据用户输入构建的数据框,选择不同的过滤器。然后我想从这个自定义数据框创建一个条形图,用户可以单击该图以从图中排除条形图。我基本上遵循这个例子: https://gallery.shinyapps.io/106-plot-interaction-exclude/
然而,当我尝试用我的被动方法定义我的reactiveValues值时,我无法定义它并得到一个错误。我怀疑我不能用反应来定义反应值,这是对的吗?那我该怎么处理呢?我应该使用reactive
而不是reactiveValues
吗?
示例代码:
服务器
server <- function(input, output) {
df <- reactive({
input$input1
})
vals2 <- reactive({
(df())
})
output$Id1 <- renderText({
vals2()
})
vals <- reactiveValues()
vals$bla <- df()
}
UI
library(shiny)
ui <- fluidPage(
fluidRow(
column(width= 4,
textInput(inputId = "input1", label = "Select number of rows", value = "10")
),
column(width = 12,
verbatimTextOutput(outputId = "Id1"),
verbatimTextOutput(outputId = "Id2")
)
)
)
答案 0 :(得分:2)
在函数开头创建您的reactiveValues,初始化为NULL
vals <- reactiveValues(bla = NULL)
然后,您可以从vals$bla
内部写入observeEvent
,例如按下按钮时。
您可以从reactiveValue中读取,例如以下列形式绘制图:
output$myPlot <- renderPlot( some function of values$bla )
编辑更新以添加我的评论,创建一个观察你的input1的observeEvent,当这个更改时,它将会在{}中的代码中执行,这将写入你的reactiveValue。
observeEvent(input$input1, {
vals$bla <- input$input1
})