2016-10-26 3 views
0

Ich versuche, mehrere reaktive Variablen (# 12) mit einer for-Schleife zu generieren. Die Anfangswerte für die Variablen werden durch die Benutzereingabe in der App angezeigt. Daher müssen die Variablen reaktiv sein und sich auf die Benutzereingabe beziehen. In der Schleife möchte ich einfach jedes Mal, wenn die Schleife läuft, einen hinzufügen ... (so etwas wie ein Zähler).For-Schleife produziert mehrere reaktive Werte

Die App ist viel komplizierter, aber ich muss nur wissen, wie man für Schleife und reaktive Werte zusammen verwendet. Also das obige Beispiel ist nur eine vereinfachte Version, um die Syntax und Struktur zu lernen

Beachten Sie, dass der folgende Code nicht ausgeführt wird! Ich habe es nur eingefügt, um zu zeigen, wie ich die App aussehen möchte ... oder ich denke, es sollte!

Vielen Dank für Ihre Hilfe Jungs !!!

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) 

Antwort

0

Ihre for-Schleife ist nicht möglich, mehrere reaktive Werte produzieren, aktualisiert sie nur die Werte in counter. Wenn Sie in einer for-Schleife weitere Elemente zu counter hinzufügen müssen, können Sie dies mit der doppelten eckigen Klammer [[]] tun. Etwas wie:

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