2015-10-21 138 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

相關問題