gpt4 book ai didi

r - DT 在 Shiny 和 R : Custom number formatting

转载 作者:行者123 更新时间:2023-12-03 16:25:54 25 4
gpt4 key购买 nike

我有一个使用 DT 包显示数据表的 Shiny 应用程序。我想要的是能够以自定义方式格式化列。例如,我希望货币值显示为:1,234.50€ 而不是 DT -way,它显示为 $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”这样的字符时,该字符仍然显示在开头而不是结尾。此外,数值没有得到“大标记”。

有任何想法吗?

最佳答案

您可以从数据表包中更改 .js 文件中货币符号的位置。

编辑 DTWidget.formatCurrency 函数的行

 $(thiz.api().cell(row, col).node()).html(currency + markInterval(d, interval, mark));

简单地
 $(thiz.api().cell(row, col).node()).html(markInterval(d, interval, mark) + currency);

在 R 库目录中的 DT/htmlwidgets/datatables.js 文件中。

至于€符号,
formatCurrency(c('cur'), currency = "\U20AC", interval = 3, mark = ",", digits = 2)

对我有用吗,那是你尝试过的,但没有看到任何符号?

关于r - DT 在 Shiny 和 R : Custom number formatting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33171279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com