在 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]])
)
}
})
})
在尝试为 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]])
)
}
})
})