我正在编写一个自定义print.xx
函数来显示一堆漂亮的数据。列宽是 11 个字符,所以我这样做:
> format(1234.567,width=11,digits=7)
[1] " 1234.567"
> format(1234.56789,width=11,digits=7)
[1] " 1234.568"
到目前为止,一切都很好。当我有一个非常大/小的数字并且科学记数法出现时,问题就来了:
> format(1234.56789e10,width=11,digits=7)
[1] "1.234568e+13"
> format(1234.56789e-10,width=11,digits=7)
[1] "1.234568e-07"
它应该使用科学计数法,好的,但我需要它坚持 11 个字符的宽度。我查看了scientific
andscipen
参数,但它仍然超出了 11 个字符的限制。一个选项可能是检查是否生成了科学记数法,如果是,则减少digits
参数,但对我来说看起来很俗气。
无论数字是否采用科学计数法,我如何强制它给我一个固定长度的字符串?