R基于另一个输入的Shiny条件输入标签
问题描述:
我试图让conditionalPanel
的label
包含从使用另一个输入创建的输出派生的名称。我一直在研究,还没有能够弄清楚如何做到这一点呢。下面是我试过的,无济于事。R基于另一个输入的Shiny条件输入标签
ui.R
shinyUI(
fluidPage(
titlePanel("example"),
sidebarLayout(
sidebarPanel(
numericInput("criteria_count",
label = "How many criteria are being considered? (max = 5)",
2, min = 2, max = 5),
textInput("critera_text",
label = "Type the different criteria titles, seperated by commas.",
value = "Example A, Example B"),
#verbatimTextOutput("value"),
conditionalPanel(condition = "input.criteria_count == 2",
selectInput("main_cri1",
label = paste0("How much more important is ", output.criteria1, " than ", output.criteria2, "?"),
c("9 (Extremely more important)",
"7 (Much more important)",
"5 (Moderately more important)",
"3 (Slightly more important)",
"1 (Equally as important)",
"1/3 (Slightly less important)",
"1/5 (Moderately less important)",
"1/7 (Much less important)",
"1/9 (Extremely less important)")))
)
)
)
)
server.R
library(shiny)
shinyServer(function(input, output){
output$criteria1 <- renderText({
strsplit(input$critera_text, ", ")[[1]][1]
})
output$criteria2 <- renderText({
strsplit(input$critera_text, ", ")[[1]][2]
})
})
鉴于上述ui.R,该label
为conditionalPanel
应如下:
“实例A比实例B更重要?“
答
试试这个(app.R
)
ui <-
fluidPage(titlePanel("example"),
sidebarLayout(
sidebarPanel(
numericInput(
"criteria_count",
label = "How many criteria are being considered? (max = 5)",
2,
min = 2,
max = 5
),
textInput("critera_text",
label = "Type the different criteria titles, seperated by commas.",
value = "Example A, Example B"),
conditionalPanel(condition = "input.criteria_count == 2",
uiOutput("mySelectInput"))
),
mainPanel()
))
server <-
function(input, output) {
output$mySelectInput <- renderUI({
criteria1 <- strsplit(input$critera_text, ", ")[[1]][1]
criteria2 <- strsplit(input$critera_text, ", ")[[1]][2]
selectInput(
"main_cri1",
label = paste0(
"How much more important is ",
criteria1,
" than ",
criteria2,
"?"
),
choices = c(
"9 (Extremely more important)",
"7 (Much more important)",
"5 (Moderately more important)",
"3 (Slightly more important)",
"1 (Equally as important)",
"1/3 (Slightly less important)",
"1/5 (Moderately less important)",
"1/7 (Much less important)",
"1/9 (Extremely less important)"
)
)
})
}
shinyApp(ui = ui, server = server)
的伟大工程。谢谢! – bshelt141