我有一个使用“DT”软件包展示数据表的 shiny 应用程序。 我希望能够以自定义方式格式化列。 例如,我希望货币值显示为这样: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")时,该字符仍然显示在开头而不是结尾。此外,数值没有得到“big-mark”的标记。
有任何想法吗?
formatCurrency('num', currency = "", interval = 3, mark = ",", digits = 0)
。对于欧元,使用此代码:formatCurrency(c('cur'), currency = "€", interval = 3, mark = ",", digits = 1)
。我不确定如何将其放置在正确的位置上。 - ChrisformatCurrency
方法得到 1,000 是不错的选择! 然而,我仍然没有看到货币数字的 € 符号。如果我像?formatCurrency
中建议的那样使用\U20AC
而不是€
,情况也是一样的。 - David