Воспроизводимый пример был бы очень полезен. Для нас, чтобы начать быстро и для вас, чтобы убедиться, что ответ соответствует вашему запросу.
Если вы хотите использовать динамические элементы пользовательского интерфейса, вы должны использовать renderUI()
.
Также вы должны дважды проверить некоторые основы, ... renderText()
производит и выводит и не должен использоваться в другой функции render()
.
Я смоделировал функцию tr()
с:
tr <- function(name) return(paste("TR:", name))
.
Ниже приведен полный рабочий пример, с этого момента вы сможете интегрировать его в свой код. Удачи!:
library(shiny)
tr <- function(name) return(paste("TR:", name))
ui <- fluidPage(
uiOutput("radio"),
plotOutput("distPlot")
)
server <- function(input, output) {
output$radio <- renderUI({
opt <- c("Normal" = "norm",
"Uniform" = "unif",
"Log-normal" = "lnorm",
"Exponential" = "exp")
names(opt)[1] <- tr("Normal")
label <- tr("Distribution type:")
radioButtons("dist", label, opt)
})
output$distPlot <- renderPlot({
dist <- switch(input$dist,
norm = rnorm,
unif = runif,
lnorm = rlnorm,
exp = rexp,
rnorm)
hist(dist(500))
})
}
shinyApp(ui, server)