首页 > 解决方案 > r闪亮输出表中数据框列中格式化数字的右对齐

问题描述


考虑以下输出值表的 R Shiny 代码:

library(shiny)

# Define UI ----
ui <- fluidPage(

  fluidRow(column(12, numericInput("someVar1", "Var1", value = 30000)),
           column(12, numericInput("someVar2", "Var2", value = 584000)),

  tableOutput("myDataTable")

  )
)

# Define server logic ----
server <- function(input, output) {

  myDataTable <- reactive({
    myDataTable <- data.frame("Var1" = formatC(c(input$someVar1, input$someVar2), format = "d", big.mark = ","))
    return(myDataTable)
  })

  output$myDataTable <- renderTable(myDataTable())
}

# Run the app ----
shinyApp(ui = ui, server = server)

似乎有多种方法可以格式化输出表中的数据,以使用“formatC”、“format”、“prettyNum”等函数来实现带或不带小数位的逗号分隔值。

然而,所有这些似乎都左证明了结果(经过大量实验)。如何格式化输出到具有特定格式的 R Shiny 应用程序但仍保持右对齐的数据框的(所有)列中的数字数据?

例如,而不是:

1,000.5
34,000.00

...我希望拥有:

 1,000
34,000

标签: rdataframeshinyformattingright-justified

解决方案


renderTable()您正在使用的功能中有“对齐”选项。请参阅 Rshiny 文档:https ://shiny.rstudio.com/reference/shiny/1.0.5/renderTable.html

output$myDataTable <- renderTable(myDataTable(), align="r")

在此处输入图像描述


推荐阅读