【发布时间】:2017-06-03 03:29:01
【问题描述】:
在尝试为 Shiny 项目创建一系列 InfoBox 时,我遇到了一个循环,即使我无休止地尝试解决这个循环,最终我还是会根据需要多次粘贴代码,这难以置信。 我原来的代码块是这样的
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 进行迭代,而无需将 paste 复制为 name有名字的时候。 我尝试通过一个简单的列表循环来执行此操作,但返回一个错误,告诉我在意外标记附近存在语法错误。
如何解决?
【问题讨论】:
-
通过 $ 字符串访问 outout 将不起作用。尝试 output[["name"]] 代替,对于 InformacionIE2 相同。如果这没有帮助,一个可重现的应用程序会很有帮助。
标签: r loops for-loop shiny infobox