R:呈现多个绘图-为什么需要local()?

R:呈现多个绘图-为什么需要local()?,r,shiny,R,Shiny,我是新来的闪亮,并建立一个应用程序的基础上的答案 但代码中有一部分我不理解,在闪亮的文档中找不到更多的见解。 在下面的代码部分(部分),为什么使用本地?答案在你链接的问题中。您需要local强制对循环的每个元素计算i,否则i值在每个绘图中都是相同的。 renderPlots <- function(n, input, output, prefix="plot") { for (i in seq.int(n)) { local({ ii <

我是新来的闪亮,并建立一个应用程序的基础上的答案

但代码中有一部分我不理解,在闪亮的文档中找不到更多的见解。 在下面的代码部分(部分),为什么使用本地?答案在你链接的问题中。您需要
local
强制对循环的每个元素计算
i
,否则
i
值在每个绘图中都是相同的。
renderPlots <- function(n, input, output, prefix="plot") {
    for (i in seq.int(n)) {
        local({
            ii <- i  # need i evaluated here
            ## These would be your 10 plots instead
            output[[sprintf('%s_%g', prefix, ii)]] <- renderPlot({
                ggplot(dat, aes_string(x='time', y=input$var)) + rndmPlot(input)
            })
        })
    }
}