2014-09-24 3 views
1

conditionalPanel 조건부 값이 하나 R studio shiny conditional statementsR 반짝 - 내 질문과 유사한

내 ui.R이 같은 같습니다

... 
radioButtons("yes_or_no", "Yes or No?", c("yes"=1, "no"=0)), 
    conditionalPanel(
    condition = "input.yes_or_no == '1'", 
     numericInput("num_1", "First numeric input", 0, min=0), 
     numericInput("num_2", "Second numeric input",0, min=0), 
     numericInput("num_3", "Third numeric input",0, min=0) 
), 
... 

내가 값을 원하는을 num_1, num_2num_3 동일 0 radioButton이 "no"로 설정되고 조건이 충족되지 않을 때 ConditionalPanel은 '그래픽'조건이기 때문에 컨트롤 위젯에는 영향을 미치지 만 값은 영향을 미치지 않습니다.

yes_or_no <- input$yes_or_no 
num_1 <- input$num_1 
num_2 <- input$num_2 
num_3 <- input$num_3 

if (input$yes_or_no == 0) { 
    num_1 <- 0 
    num_2 <- 0 
    num_3 <- 0 
} 
myfunction(yes_or_no, num_1, num_2, num_3) 

하지만 그건 작동하지 않습니다 이 질문 (R studio shiny conditional statements)에 대한 대답에 따라 나는하여 server.R 파일에 다음을 깨달았다. numericInputs에 값을 입력하면 conditionalPanel을 "no"로 설정하더라도 서버 측 if 문에서 이러한 변수를 0으로 덮어 쓰지 않습니다.

아무도 알고 있나요? 미리 감사드립니다!

답변

1

반짝이는 Google 그룹의 도움을 받아 확인하는 방법을 알아 냈습니다. 다음은 작업 예입니다

server.R :

library(shiny) 
shinyServer(function(input, output) { 

    output$ttable1 = renderTable({ 

    output$num_2_ui <- renderUI({ 
     num_2 <- ifelse(input$yes_or_no == 0, 0, input$num_2) 
     numericInput("num_2", "Value num_2", value=num_2, min=0) 
    }) 

    yes_or_no <- input$yes_or_no 
    num_2 <- input$num_2 

    table1 <- data.frame(yes_or_no, num_2) 
    print(t(table1)) 

    }) 
}) 

ui.R : 그것은 단지와 가장 좋은 방법이지만, 순간 나를 위해 작동하는 경우

library(shiny) 

shinyUI(fluidPage(

    titlePanel("test"), 

    sidebarLayout(
    sidebarPanel(
     uiOutput("num_2_ui"), 
     radioButtons("yes_or_no", "Yes or No?", c("yes"=1, "no"=0), selected="no") 

    ), 

    mainPanel(
     uiOutput("ttable1") 
    ) 
) 
)) 

확실하지.

관련 문제