如何在闪亮的无线电单选按钮中呈现文本字段?

时间:2018-05-11 23:01:37

标签: r shiny radio-button

我需要翻译列表中的选项,当前代码不会运行。函数tr()在.csv字典中执行从一个术语到另一个术语的转换。

radioButtons(
              "enc",
              renderText({tr("Select encoding in case your data presents strange characters:")}),
              choices = c(
                renderText({tr("Automatic")}) = "unknown",
                "UTF-8" = "UTF-8",
                "Windows" = "Latin-1"
              ),
              selected = "unknown",
              inline = TRUE
            )

目前的结果:

Error in source("server/body.R", local = TRUE) : 
server/body.R:86:48: unexpected '='
                 choices = c(
                 renderText({tr("Browse")}) =
                                               ^

1 个答案:

答案 0 :(得分:1)

可重复的例子非常有用。为了让我们快速入门,并确保答案符合您的要求。

如果要使用动态ui元素,则应使用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)