Ich habe eine Shiny-App, die eine Datentabelle mit dem DT
-Paket anzeigt. Ich möchte Spalten in einer benutzerdefinierten Weise formatieren können. Zum Beispiel möchte ich, dass ein Währungswert wie folgt angezeigt wird: 1.234,50 € anstelle des DT
-ways, der es wie folgt anzeigt: 1.234,5 $ (beachten Sie die Änderung des Symbols, die Position des Währungssymbols sowie die Zahlen nach dem Komma).DT in Shiny und R: Benutzerdefinierte Zahlenformatierung
Ein MWE sieht wie folgt aus:
library(shiny)
library(DT)
shinyApp(
# UI
ui = fluidPage(DT::dataTableOutput('tbl')),
# SERVER
server = function(input, output) {
dat <- data.frame(cur = 1234.5, # supposed to be displayed as: 1,234.50€ | Bad!
# displayed as $1,234.5
perc = 0.123456, # 12.34% | Good!
num = 1000) # 1,000 | Bad! displayed as 1000
# render DT
output$tbl = DT::renderDataTable(
datatable(dat) %>%
formatCurrency(c('cur'), "$") %>%
formatPercentage('perc', 2) %>%
formatRound('num', digits = 0)
)
}
)
Es ist eine ziemlich gute Arbeit geleistet, aber wenn das Währungssymbol zu €
ändern, das Symbol verschwindet. Wenn Sie ein anderes Zeichen wie "E" einfügen, wird das Zeichen immer noch am Anfang und nicht am Ende angezeigt. Außerdem erhält der numerische Wert keine "große Markierung".
Irgendwelche Ideen?
Für numerische könnten Sie versuchen: 'formatCurrency ('num', currency =" ", interval = 3, mark =", ", digits = 0)'. Für Euro, 'formatCurrency (c ('cur'), Währung =" € ", interval = 3, mark =", ", digits = 1)'. Ich bin mir nicht sicher, wie man es richtig macht, aber – Chris
Der 'formatCurrency'-Ansatz, um 1000 zu bekommen, ist gut! Allerdings sehe ich immer noch kein € -Zeichen für die Währungsnummer. Gleiches gilt, wenn ich '\ U20AC' statt' '' verwende, wie in '? FormatCurrency' vorgeschlagen. – David