我试图让label
的{{1}}包含从输出派生的名称,该输出是使用其他输入创建的。我一直在研究,但还没弄清楚如何做到这一点。以下是我尝试过的,但无济于事。
ui.R
conditionalPanel
server.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)")))
)
)
)
)
鉴于上面的ui.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]
})
})
的{{1}}应如下所示:
“示例A比示例B重要多少?”
答案 0 :(得分:1)
试试这个(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)