2015-10-21 165 views
0

在pixiedust文档中,我读到了防尘对象中的所有列都是字符。如果我有1000,2300等数字,我怎样才能使用千位分隔符来格式化它们,比如1'000和2'300等。R:pixiedust - 如何为数字添加千位分隔符?

+0

'formatC(as.numeric(C( “1000”, “2300”)),big.mark = “”“)或''只是formatC(C(1000,2300),big.mark = “'”)'如果我们说真实的数字。 –

+0

这正是我所期待的。非常感谢。 –

回答

2

尽管所有列都被强制为字符,但是在深度洞穴pixiedust中,它仍保留有关每列的原始含义的一些知识,因此您仍然可以应用函数。你只需要有点偷偷摸摸(迄今为止,这是pixiedust的弱点之一,但我认为这是一个不可避免的折衷)。只需将功能包装在quote中,并将其传递至fn洒水器。

library(pixiedust) 
DF <- data.frame(x1 = c(1000, 2000, 2300, 2400), 
       x2 = LETTERS[1:4]) 

dust(DF) %>% 
    sprinkle(cols = "x1", 
      fn = quote(formatC(value, big.mark = "'"))) 
+0

非常感谢。这对少数人来说效果很好。一个小问题是该例子显示(甚至削减)较长的数字。 1.18e + 05格式。我能否以某种方式更宽地显示整个数字,例如118'006? –

+0

查看'?formatC'中的选项。如果你添加“digits = 6”,你会得到你想要的。你碰到的是R中数值的默认格式。 – Benjamin

相关问题