2016-10-26 8 views
0

for 루프를 사용하여 여러 개의 반응 변수 (# 12)를 생성하려고합니다. 변수의 초기 값은 앱의 사용자 입력에 의해 표시됩니다. 따라서 변수는 반응적이고 사용자 입력과 관련되어야합니다. 루프에서 루프가 실행될 때마다 간단히 추가하고 싶습니다 ... (카운터와 같은 종류).여러 개의 반응 값을 생성하는 루프

응용 프로그램이 더 복잡하지만 루프 및 반응 값을 함께 사용하는 방법을 알아야합니다. 위의 예는 구문과 구조를 배우기위한 단순화 된 버전입니다.

아래 코드는 실행되지 않습니다! 방금 앱을 어떻게 보이게 할 것인지를 보여주기 위해 포함 시켰습니다 ... 아니면 꼭해야한다고 생각합니다!

도움 주셔서 감사합니다.

ui <- fluidPage(
    numericInput("initial", "Enter the initial value here", value = 0), 
    verbatimTextOutput("text1") 
    verbatimTextOutput("text2") 
) 

server <- function(input, output, session) { 
    counter <- reactiveValues (
    count1 = input$initial, 
    count2 = input$initial 
) 

    for (i in 1:10) { 
    counter$count1 <- counter$count1 + 1 
    counter$count2 <- counter$count2 + 2 
    } 

    output$text1 <- renderPrint(counter$count1) 
    output$text2 <- renderPrint(counter$count2) 
} 

shinyApp(ui = ui, server = server) 

답변

0

루프에 대한 여러 반응 값을 생성하지 않습니다, 그것은 단지 counter의 값을 업데이트합니다. for 루프에 counter에 요소를 더 추가해야하는 경우 이중 대괄호 [[]] 연산자를 사용하여 수행 할 수 있습니다. 다음과 같음 :

for (i in 1:10) { 
    counter$[[paste0("count",i)]] <- i 
}