2015-03-24 6 views
3

Пусть мои данные выглядит следующим образом:Добавить запятую цифр каждые три цифры в DataTable (R)

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

Я хочу использовать DataTables и есть столбец А (1,000,001; 5000)

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

Я знаю, что я могу использовать весы

library(scales)  
comma_format()(1000000) 

, но я не уверен, как совместить это с DataTables

Спасибо!

ответ

9

Если бы этот же вопрос:

Try This:

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

enter image description here

3

Вы можете использовать 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() 

Что дает:

enter image description here

+2

проблема в том, что A и B теперь являются символьными значениями и больше не сортируются численно. Есть ли какое-то решение, которое сохраняет их численное значение? – daj