shiny - 如何格式化 R Shiny numericInput?

标签 shiny formatting

我有一个 Shiny 的应用程序,里面有很多 numericInput领域。我想要一种格式化 numericInput 的方法每 10^3 个逗号分隔的字段。例如,我想要 5,000,000 而不是 5000,000。

我可以在 R 中使用 format 来做到这一点和 prettyNum职能。但我没有办法在 Shiny 中做到这一点。

这对 UI 非常有帮助,因为它可以处理百分比、金钱等。有没有人知道如何将其合并到 numericInput 中。 field ?

谢谢!

library(shiny)

# Define UI for application that draws a histogram
ui <- fluidPage(
  mainPanel(
    numericInput("formatNumber",
                 "Number should be formatted, e.g."5,000,000",
                 value = 1000),
    p(format(5000000.10, big.mark=",", big.interval=3L,
             digits=0, scientific=F))
  )
)

server <- function(input, output) {  
}

shinyApp(ui = ui, server = server)

最佳答案

shinyWidgets package 有一个很棒的新功能(从 0.5.4 版开始添加,也是一个免责声明,我是通过拉取请求添加的),autonumericInput 可以让您做到这一点。它基于 javascript 库 autonumeric。该函数有很多选项,但文档非常广泛,对于简单用途,大多数可以忽略。
您正在尝试做的事情可以按如下方式完成:

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
  h1("Autonumeric Input Example"),
  shinyWidgets::autonumericInput(
    inputId = "num", 
    label = "Enter a large number:", 
    value = 1000000, 
    currencySymbolPlacement = "p",
    decimalPlaces = 2,
    digitGroupSeparator = ",",
    decimalCharacter = "."
  ),
  verbatimTextOutput("res1")
)

server <- function(input, output) {
  output$res1 <- renderText(input$num)
}

shinyApp(ui = ui, server = server)

这特别好,因为它提供了你输入的格式,所以用户可以很容易地知道他们输入的数字有多大。我从经验中知道,尝试将大数字放入基础 Shiny 的 numericInput,试图计算一个小盒子中的数字并找出有多少个零。此函数的目标是使格式化数字输入更加容易。
希望这是有用的!

关于shiny - 如何格式化 R Shiny numericInput?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51791983/

相关文章:

javascript - 有没有办法在 R 中使用 Javascript 包?

MySQL日期转换("30-Jan-2013"到 "2013-01-28")

java - 当文本是字段时,如何为文本 "text"添加下划线?

java - 有没有一种有效的方法来舍入内部具有双值的字符串并得到 double 答案?

latex - 更改 Latex 部分编号显示

r - 点击后更新textInput

r - 使用 Shiny 的 DT 动态预选行

r - 仅第一个多边形出现在 Leaflet 2.0.1 等值线图中

grails - 在 Grails 中格式化日期

javascript - r - 如何在 shinyapp 中自动滚动到 div 的底部?