在数据表(R)中每三位数字添加逗号

Add comma to numbers every three digits in datatable (R)

假设我的数据是这样的:

df1 = data.frame(A=c(1000000.51,5000.33), B=c(0.565,0.794))

我想使用 DataTables 并且 A 列为 (1,000,001 ; 5,000)

library(DT)
datatable(df1)  %>%  formatPercentage('B', 2) %>%
  formatRound('A',digits = 0)

我知道我可以使用体重秤

library(scales)    
comma_format()(1000000)

但我不确定如何将其与 DataTables 结合使用

谢谢!

您可以使用 formatC

library(dplyr)
library(DT)

df1 %>% 
  mutate(A = formatC(round(A), format = "f", big.mark = ",", drop0trailing = TRUE),
         B = paste0(formatC(100 * B, format = "f", digits = 2), "%")) %>%
  datatable()

给出:

有同样的问题:

试试这个:

require(DT)
require(dplyr)

df1 = data.frame(A=c(1000000.51,5000.33, 2500, 251), B=c(0.565,0.794, .685, .456))

df1 <- df1 %>% mutate(A=round(A,digits=0))

datatable(df1)  %>%  formatPercentage('B', 2) %>%
  formatCurrency('A',currency = "", interval = 3, mark = ",")

我上面的答案显示了小数位。

我能够在 formatCurrency() 中使用 digits 选项并且有效:

df1 = data.frame(A=c(1000000.51,5000.33, 2500, 251), B=c(0.565,0.794, .685, .456))
datatable(df1)  %>%  formatPercentage('B', 2) %>%
    formatCurrency('A',currency = "", interval = 3, mark = ",", digits=0)

我不确定 formatRound() 是否是在提出并回答了这个问题后创建的,但这里有一个不使用 formatCurrency() 的解决方案(看起来有点老套):

library(DT)
library(dplyr)

df1 = data.frame(A=c(1000000.51,5000.33, 2500, 251), B=c(0.565,0.794, .685, .456))

datatable(df1) %>%
  formatPercentage('B', digits = 2) %>%
  formatRound('A', digits = 0)