Ich möchte eine DataTable-Spalte, die mit Dollar formatiert ist (und damit ist ein Zeichen). Ich habe scales::dollar()
zum Formatieren verwendet. Dadurch wird das Feld in ein Zeichen konvertiert, das Sortierprobleme verursacht (z. B. "$8" > "$10"
).Drucken wie ein Zeichen, aber sortieren wie numerisch in Shiny und DataTable
Wie kann ich das Feld so sortieren, als wäre es numerisch? Alternativ kann ich das Feld als numerisch behalten und nur mit Dollar-Formatierung drucken?
app.R (erfordert Shiny 0.10.2)
server <- function(input, output) {
output$foo_table <- renderDataTable({
x <- seq(8000, 12000, by = 1000)
x <- scales::dollar(x)
d <- data.frame(x, stringsAsFactors = FALSE)
d
})
}
ui <- shinyUI(fluidPage(
mainPanel(dataTableOutput("foo_table"))
)
)
shinyApp(ui = ui, server = server)
'gtools :: mixedsort()' sieht sehr praktisch aus. Aber das löst nicht das Problem, die dataTable in Shiny richtig zu sortieren. – davechilders
Entschuldigung. Ich bin kein ausreichend erfahrener Shiny-Benutzer, um diese Anweisung zu analysieren –