Выравнивание по правому краю отформатированных фигур в столбце фрейма данных в блестящей выходной таблице


Рассмотрим следующий код 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

1 ответ

Есть опция "выровнять" в renderTable() функция, которую вы используете. Пожалуйста, смотрите документацию Rshiny: https://shiny.rstudio.com/reference/shiny/1.0.5/renderTable.html

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

Другие вопросы по тегам