15

假设我的数据如下所示:

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 结合起来

谢谢!

4

4 回答 4

26

有同样的问题:

尝试这个:

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 = ",")

在此处输入图像描述

于 2016-01-25T18:28:52.640 回答
4

你可以使用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()

这使:

在此处输入图像描述

于 2015-03-24T20:53:02.687 回答
3

我不确定是否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)

在此处输入图像描述

于 2020-12-10T16:12:14.757 回答
0

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

在此处输入图像描述

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

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)

在此处输入图像描述

于 2020-07-28T22:17:48.183 回答