gpt4 book ai didi

r - 在 Shiny 的 DataTable 实现中控制数字格式

转载 作者:行者123 更新时间:2023-12-04 01:46:41 25 4
gpt4 key购买 nike

目标

默认情况下,在 Shiny 的 DataTable 中使用数千个分隔符呈现大数字。

问题

文档(对我来说)看起来应该已经显示了千位分隔符。我是否遇到了兼容性问题,或者我是否需要在我的代码中添加更多内容,如果需要,如何添加?

[更新] 还有一个SO question试图解决 Shiny 的预格式化数据的排序问题。这个问题尚未解决,但提出了另一条路线 - 预先格式化。这是一条可取的路线吗?如果是,如何正确解决其他 OP 的排序问题?

背景

我正在尝试改进 Shiny 表的输出以提高可读性。我已经成功使用了另一个SO question卡住标题,但正在努力使数字格式正确。

MWE

library(shiny)
runApp(
list(ui = fluidPage(
tagList(
singleton(tags$head(tags$script(src='//cdn.datatables.net/fixedheader/2.1.2/js/dataTables.fixedHeader.min.js',type='text/javascript'))),
singleton(tags$head(tags$link(href='//cdn.datatables.net/fixedheader/2.1.2/css/dataTables.fixedHeader.css',rel='stylesheet',type='text/css')))
),

dataTableOutput("mytable")
)
, server = function(input, output, session){
output$mytable <- renderDataTable(iris*1000,
options = list(
pageLength = 50,
language.thousands=",",
initComplete = I("function(settings, json){
new $.fn.dataTable.FixedHeader(this, {
left: true
} );
}")
)
)
})
)

Example of display

文档

查看 DataTable 文档,它似乎设置了 language.thousands 应该足够了:

DataTables' built in number formatter (formatNumberDT) is used to format large numbers that are used in the table information.



language.thousands

By default DataTables will use the character specified in language.thousandsDT (in turn, that, by default, is a comma) as the thousands separator.



formatNumber

在 formatNumber 中,它有一个可以添加的函数,但是,这对我来说很新,所以我不确定如何在现有代码的上下文中使用这个函数。
$('#example').dataTable( {
"formatNumber": function ( toFormat ) {
return toFormat.toString().replace(
/\B(?=(\d{3})+(?!\d))/g, "'"
);
};
} );

浏览器详情

Chrome :版本 39.0.2171.71 m

最佳答案

format 的问题一个 prettyNum是这些函数产生字符而不是数字的事实。因此,不可能对渲染的表格进行样式设置。
此示例的解决方案可能如下:

  output$tab <- renderDataTable({ 
datatable(mytable) %>%
formatCurrency(columns = ..., currency = "", interval = 3, mark = ",") %>%
formatStyle(
columns = ...,
color = styleInterval(myThreshold, c("black", "red"))) })

关于r - 在 Shiny 的 DataTable 实现中控制数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255108/

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