在一个闪亮的交互式web应用程序(指向源这里的链接)中,我们使用numericInput()让用户输入所使用的值(请参阅ui.R,或者,下面是一个片段):
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)?
如果不是,我们可以想象工作圈(也就是说,允许输入是任何类型的(即字符串),然后依次处理字符串;但这对我们来说并不是那么可取。
发布于 2018-06-21 09:14:40
试着用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)
}https://stackoverflow.com/questions/50958272
复制相似问题