我正在尝试使用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 :(得分:0)
您的for循环不会生成多个被动值,它只会更新counter
中的值。如果您需要在for循环中向counter
添加更多元素,可以使用双方括号[[]]
运算符执行此操作。类似的东西:
for (i in 1:10) {
counter$[[paste0("count",i)]] <- i
}