在 ShinyApps server.R 中循环遍历名称列表

Loop over name list in a ShinyApps server.R

在尝试为 Shiny 项目创建一系列信息框时,我遇到了一个循环,尽管我一直在尝试解决这个问题,但最终我还是会根据需要多次粘贴代码,这是令人难以置信的。 我原来的代码块是这样的

output$**name** <- renderValueBox({
  InformacionIE2 <- InformacionIE2.df[ which(InformacionIE2.df$INSTITUCIONEDUCATIVA==input$input_typen),]
  if (InformacionIE2$**name** =="Si") {
    infoBox("Planos Electricos",
            color = "green",
            icon = icon("thumbs-up", lib = "glyphicon"),
            print (InformacionIE2$**name**)
    )
  } else {
    infoBox("**name** ",
            color = "red",
            icon = icon("thumbs-down", lib = "glyphicon"),
            print (InformacionIE2$**name**)
    )          
  }
})

我需要找到一种方法让 name1、name2、name3、...、nameN 在完全相同的代码块中迭代代替 name复制粘贴名称的名称。 我尝试通过对列表进行简单循环来执行此操作,但返回错误告诉我在意外标记附近存在语法错误。

如何解决?

使用 lapply 而不是 for 循环,它应该可以工作。不知道为什么:

lapply(**names**, function(name) {
output[[name]] <- <- renderValueBox({
  InformacionIE2 <- InformacionIE2.df[ which(InformacionIE2.df$INSTITUCIONEDUCATIVA==input$input_typen),]
  if (InformacionIE2[[name]] =="Si") {
    infoBox("Planos Electricos",
            color = "green",
            icon = icon("thumbs-up", lib = "glyphicon"),
            print (InformacionIE2[[name]])
    )
  } else {
    infoBox(name,
            color = "red",
            icon = icon("thumbs-down", lib = "glyphicon"),
            print (InformacionIE2[[name]])
    )          
  }
})
})