У меня есть блестящее приложение, которое отображает таблицу данных с использованием пакета DT
. Я хочу иметь возможность форматировать столбцы по своему усмотрению. Например, я хочу, чтобы значение валюты отображалось следующим образом: 1 234,50 евро вместо DT
, которое отображает его как 1 234,5 доллара (обратите внимание на изменение символа, положение символа валюты, а также числа после десятичная точка).
MWE выглядит следующим образом:
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)
)
}
)
Однако он неплохо справляется со своей задачей, но при изменении символа валюты на €
символ исчезает. При вставке другого символа, такого как «E», этот символ по-прежнему отображается в начале, а не в конце. Кроме того, числовое значение не получает «большую отметку».
Любые идеи?
formatCurrency('num', currency = "", interval = 3, mark = ",", digits = 0)
. Для евроformatCurrency(c('cur'), currency = "€", interval = 3, mark = ",", digits = 1)
. Я не уверен, как сделать это правильно, хотя - person Chris   schedule 16.10.2015formatCurrency
-подход к получению 1000 — это хорошо! Однако я до сих пор не вижу знака € для номера валюты. То же самое, если я использую\U20AC
вместо€
, как это предлагается в?formatCurrency
- person David   schedule 16.10.2015