【问题标题】:How to get values from the sliderInput and write them to a variable?如何从滑块输入中获取值并将它们写入变量?
【发布时间】:2018-06-07 17:49:00
【问题描述】:

下面是部分代码:

ui.r

sidebarPanel(
   sliderInput("days", "Analyzing days", min = 22, max = 132, value = 25)),

server.r

var<-input$days

结果控制台报错:

Error in .getReactiveEnvironment()$currentContext() :
Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)

应用程序会自动关闭。 我需要为 sliderInput 变量分配一个值,这样我就可以以不同的方式操作它。 我该怎么做?

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    您需要在可以处理用户更改值的东西中分配变量,这称为反应式环境。您可以使用reactive()observeEvent() 之类的东西,就像我在这里所做的那样。

    server<-function(input,output){
    
    var = NULL
    
    # Turns variable into reactive variable.
    makeReactiveBinding("var")
    
    # Make reactive environment and assign variable based on value
    observeEvent(input$days, { 
    var<<-input$days
    })
    
    } #close server
    

    信用:How to plot selected input from selectInput() function in shiny?@Scrappy

    【讨论】:

    • 可以,但是有错误。 sliderInputmax=132。如果我使用observeEvent 并在应用程序中将值从50 设置为82,它会自动关闭并给出错误:如果出现错误:需要TRUE/FALSE 的地方缺少值。在sliderInput 的其他值下都正常工作。在脚本中我有“if”,但它没有 50 或 82。
    【解决方案2】:

    没有看到其余的代码,我们只能猜测。如果这是唯一的代码,它显然不会工作;)

    也许这个小例子可以说明一些基础知识:

    library(shiny)
    
    ui <- fluidPage(
      sliderInput("days", "Analyzing days", min = 22, max = 132, value = 25),
      verbatimTextOutput("slidInp")
    )
    
    server <- function(input, output){
      output$slidInp <- renderPrint({
        var <- input$days
    
        var2 <- c(1:as.numeric(var))
    
        print(var2)
      })
    }
    
    shinyApp(ui, server)
    

    【讨论】:

    • 我需要这样的:var1&lt;-input$daysvar2&lt;-c(1:var)
    • 是的。谢谢!
    猜你喜欢
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 2012-01-12
    • 2015-04-09
    相关资源
    最近更新 更多