在一个闪亮的交互式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
)?
如果没有,我们可以想象一下变通办法(即允许输入为任何类型(即字符串),然后依次处理字符串;但这对我们而言并不理想。
答案 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)
}