r语言 - 格式化数字向量:对齐小数点



给定一个数字向量,我想将其转换为给定可用字符的最大值的字符向量。

x = c(2, 0.002, 0.2)
x
# [1] 2.000 0.002 0.200
例如,print方法的工作方式与我想要的格式完全一致。如果空间不够或相反,它应该按照以下方式运行:
myFormat(x, width = 4)
# "2.00" "0.00" "0.20"
myFormat(c(2, 0, 0.2), width = 4)
# " 2.0" " 0.0" "0.2"

是否有一种简单的方法可以用prettyNum, formatC或其他方式做到这一点?

你可以试试sprintf。它使用类似c的sprintf的格式,例如from ?sprintf:

' m。n用句号隔开的两个数字,表示字段的宽度(' m ')和精度(' n ')。

sprintf("%4.1f", x)
# [1] " 2.0" " 0.0" " 0.2"
sprintf("%5.2f", x)
# [1] " 2.00" " 0.00" " 0.20"

最新更新