【发布时间】:2017-06-09 22:38:56
【问题描述】:
我有一段重复 20 次的代码,其中显示了相同的信息、绘图等,并且显示的数据集的数量取决于用户在闪亮中选择了多少输入字段应用程序。我不想在第二个块中复制/粘贴此代码并将输入名称从“Job1”更改为“Job2”,而是要引入一个 for 循环。我的问题是如何为连续的闪亮输入分配变量。我已经尝试 paste0 来完成我想要做的事情,但没有运气。
示例代码显示了我在 for 循环中尝试使用 4 次迭代来做同样的事情。我尝试完成这项工作的部分在 ui 顶部附近被注释掉。它现在的方式按预期工作,但正如您所见,它并不干净而且非常乏味。另外,这在服务器端会是什么样子(我的尝试现在也被注释掉了)
ui <- fluidPage(
numericInput("num_selected", label = "Fields to Display", value = 0, min = 0, max = 4, step = 1),
# for (i in 1:4 ) {
# conditionalPanel(
# condition = "input.num_selected >= i",
# textInput(paste0("Name", i), "Name"),
# textInput(paste0("Job", i), "Job")
# )
# }
conditionalPanel(
condition = "input.num_selected >= 1",
textInput("Name1", "Name"),
textInput("Job1", "Job")
),
conditionalPanel(
condition = "input.num_selected >= 2",
textInput("Name2", "Name"),
textInput("Job2", "Job")
),
conditionalPanel(
condition = "input.num_selected >= 3",
textInput("Name3", "Name"),
textInput("Job3", "Job")
),
conditionalPanel(
condition = "input.num_selected >= 4",
textInput("Name4", "Name"),
textInput("Job4", "Job")
)
)
server<-function(input,output,session)
{
# for (i in 1:20 ) {
# output$paste0("Name", i) <- ...
# output$paste0("Job", i) <- ...
# }
}
shinyApp(ui=ui, server=server)
【问题讨论】: