2017-08-09 63 views
0

我需要格式化数字,右对齐逗号符号的左右固定宽度,而不考虑数字。例如逗号左边的3位数字和右边的两位数字。因此12.3将被格式化为" 12.30"。我想出了最好的解决办法是这样的:格式化数字右对齐R,长于最长数字

test <- c(10, 1, 0.1, 0.01, 0.001, 0) 

format(round(c(100,test), 2), 
    justify = "right", 
    scientific = FALSE, 
    nsmall = 2)[-1] 

有直接formatprintfsprintf归档本的方式,...

回答

1
test <- c(10, 1, 0.1, 0.01, 0.001, 0) 
formatC(test, width = 6, digits = 2, format = "f") 
#[1] " 10.00" " 1.00" " 0.10" " 0.01" " 0.00" " 0.00" 

显然,这是一个软宽度规格。如果您对左边超过三位数,宽度增加,以适应:

formatC(100000, width = 6, digits = 2, format = "f") 
#[1] "100000.00" 
+0

非常感谢,我试过的许多参数组合'format','formatC','printf','的sprintf '没有找到这个。 – snaut

+0

我通过仔细阅读'help(“formatC”)''中的文档了解了这一点。我承认,'formatC'接受了不少参数,但在翻页网站上它非常灵活。你也可以用'sprintf'来做到这一点。 – Roland