【发布时间】:2018-06-28 20:44:05
【问题描述】:
我正在尝试使用 for 循环在 Shiny 中创建小部件。每个块包含:
- 标签
- 复选框
- 选择选择器
- 两个数字输入
我想根据复选框的值和选项选择器的值来显示或隐藏两个数字输入的条件。 在我创建的 for 循环中,我为每个小部件变量添加了一个索引。 我想知道如何在 for 循环中执行条件面板的条件,知道变量在它们的名称中被索引。感谢您的帮助。我与您分享 server.R 和 UI.R 脚本:
library(shiny)
shinyServer(function(input, output) {
output$input_value2 <- renderUI({
fluidRow(
lapply(1:8, function(i) {
column(width = 4,
output[[paste0('b', i)]] <- renderUI({strong(paste0('Variable N ', i))}),
checkboxInput(label = 'Inclued',paste0('c', i)),
selectInput(paste0('popDist', i), "Distribution",list("Normal" = "normal","Uniforme" = "uniforme")),
conditionalPanel(
condition = "eval(parse(text=paste0('input.popDist',i)))== 'uniforme'& (eval(parse(text=paste0('input.c',i)))==1",
numericInput(paste0('min', i), label = "Min:", value = 1),
numericInput(paste0('max', i), label = "Max:", value = 2)
),
conditionalPanel(
condition = "eval(parse(text=paste0('input.popDist',i)))== 'uniforme'& (eval(parse(text=paste0('input.c',i)))==1",
numericInput(paste0('mean', i), label ="mean:", value = 0),
numericInput(paste0('sd', i), label = "st. dev.:", value = 1)
)
)
})
)
})
})
library(shiny)
shinyUI(fluidPage(
titlePanel("TEST conditional panel"),
uiOutput("input_value2")
))
【问题讨论】:
标签: r loops shiny conditional panel