R:sprintf填充带有前导空格的十进制数

时间:2016-09-14 17:16:12

标签: r formatting string-formatting

我尝试使用sprintf功能填充带有前导空格的十进制数字。

例如,我想转换以下向量:

a <- c(1, 1.123, -1.123, 123)
[1]   1.000   1.123  -1.123 123.000

to(padding = 4):

[1] "   1.00"   "   1.12"   "  -1.12"   " 123.00"

我尝试使用sprintf("% 4.2f", a),但会产生以下结果:

[1] " 1.00"   " 1.12"   "-1.12"   " 123.00"

修改

我知道它适用于整数,即sprintf("%4d", 123)会生成" 123",但我无法使用浮点数。

1 个答案:

答案 0 :(得分:3)

使用%7.2f。总共7个字符,小数点右边2个。

sprintf("%7.2f", a)
# [1] "   1.00" "   1.12" "  -1.12" " 123.00"

感谢@Jota的提示,我们删除了7.2f之前的空格。