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。
我正在尝试使用 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。