2016-10-21 5 views
0

저는 dplyr을 사용하여 여러 개의 lm() 모델을 구축 중입니다. 나는 사용자가 반짝이는 앱의 독립 변수 값을 - shiny :: sliderInput()을 통해 변경할 수있게하고 싶다. 그러나 R^2가 임계 값보다 큰 "적합성"이있는 경우에만 그렇게하십시오. 그렇지 않으면 슬라이더를 비활성화하십시오. shinyjs :: disable() 함수를 사용하려고했습니다. 아래를보십시오, 그러나 그것을 작동하게 할 수 없습니다. 내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?disinyble shiny sliderInput shinyjs를 사용합니다.

library(shiny) 
library(shinyjs) 

# Define UI for application that draws a histogram 
ui <- shinyUI(fluidPage(
    sidebarLayout(
     sidebarPanel(
     sliderInput("test","Nice number",min = 1,max = 50,value = 30) 
    ), 
    mainPanel(
     textOutput("valueText") 
    ) 
    ) 
)) 

# Define server to disable slider if value selected 

server <- shinyServer(function(input, output) { 

    value <- reactive(input$test) 
    output$valueText <- renderText(paste(value())) 

    #How to diasble slider? 
     reactive(if(value()==35){ 
     shinyjs::disable('test') 
    } 
    ) 
    }) 

# Run the application 
shinyApp(ui = ui, server = server) 

답변

1

ui.R에서 useShinyjs()를 호출해야합니다.

library(shiny) 
    library(shinyjs) 

    # Define UI for application that draws a histogram 
    ui <- shinyUI(
      tagList(
      useShinyjs(), 
      fluidPage(
      sidebarLayout(
        sidebarPanel(
          sliderInput("test","Nice number",min = 1,max = 50,value = 30) 
        ), 
        mainPanel(
          textOutput("valueText") 
        ) 
      ) 
    ) 

    ) 
    ) 

    # Define server to disable slider if value selected 

    server <- shinyServer(function(input, output) { 

      value <- reactive(input$test) 
      output$valueText <- renderText(paste(value())) 

      #How to diasble slider? 
      observeEvent(value(), { 
        if(value()==35){ 
          shinyjs::disable('test') 
        } 
      }) 

    }) 

    # Run the application 
    shinyApp(ui = ui, server = server) 
:

코드입니다