我遇到的问题是我无法在 Shiny 中自动生成 GUI。这个想法是查看有多少文件并为每个文件生成一组图像+按钮。我相信这个问题的解决方案是 R 中任何GUI 生成的解决方案。
我可以静态地执行此操作,为每个按钮和图像编写代码,但是将其放入 for 循环或在 server.R 中呈现图像并将其作为 HTML 传递给 ui 是行不通的。 R。我将在下面解释。
我要生成的代码是:
actionButton("sug1",icon=imageOutput("sug1",width="100px",height="100px"),label="First")
这给了我一个 100x100 的可点击图像。
我尝试了以下方法:
1) 用 ui.R 内的 for 循环包围它,并使 ID("sug1") 和标签成为变量,其中最后一个数字在每个循环中递增。
2) 将结果累加并使用 server.R 中的 HTML() 函数稍后在 ui.R 中输出
output$generateImages <- renderUI({
(...)
for(...){
(...)
w <- paste(w, actionButton(paste("oc",which(dir==folders)),label=dir))
}
HTML(w)
})
然后在 ui.R 中我希望它出现的地方:
htmlOutput("generateImages")
3)我猜想使用 HTMLoutput 或 UIOutput 应该会有所帮助,但鉴于我的代码生成的 HTML 输出(如在右 tlick/view page source 中看到的)是:
<button id="sug1" type="button" class="btn action-button">
<div id="sug1" class="shiny-image-output" style="width: 100px ; height: 100px"></div>
First
</button>
我无法弄清楚如何生成它,因为我不知道如何以及在何处插入对图像的引用。
非常感谢帮助。