R:sprintf 用前导空格填充十进制数

R: sprintf to pad decimal number with leading white spaces

我正在尝试使用 sprintf 函数用前导空格填充十进制数。

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

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

到(填充 = 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",但我不能让它适用于浮点数。

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

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

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