允许Shiny交互式Web应用程序中的numericInput()以逗号输入(对于欧洲用户)

时间:2018-06-20 23:10:34

标签: r shiny

在一个闪亮的交互式Web应用程序中(链接到源here,我们使用numericInput()来让用户输入所使用的值(请参见ui.R,或以下代码段):< / p>

  sidebarLayout(
      sidebarPanel(
          numericInput("unstd_beta", "Estimated Effect", 2),
          numericInput("std_error", "Standard Error", .4),
          numericInput("n_obs", "Number of Observations", 100),
          numericInput("n_covariates", "Number of Covariates", 3),
          actionButton("button", "Run"),
          width = 2
      ),

这基本上工作正常,来自欧洲(德国)的直到用户尝试使用逗号(,)而不是小数(。)输入值,即:

7,06

代替

7.06

这不起作用,因为numericInput()不允许使用逗号。是否有任何(简便易行)方式允许欧洲用户输入这样的值(7,06)?

如果没有,我们可以想象一下变通办法(即允许输入为任何类型(即字符串),然后依次处理字符串;但这对我们而言并不理想。

1 个答案:

答案 0 :(得分:2)

尝试改用textInput(),并用gsub()用逗号替换逗号:

library(shiny)

if (interactive()) {

  ui <- fluidPage(
    textInput("number", "Number", "0,4"),
    verbatimTextOutput("value")
  )
  server <- function(input, output) {
    output$value <- renderText({ as.numeric(paste(gsub(",", ".", input$number))) })
  }
  shinyApp(ui, server)
}