我试图实现的是,所有打印的数字显示在最大的7数字。下面是我想要印的东西的例子:
0.000000 (而实际数字为0.000000000029481.) 0.299180 (而实际数字为0.299180291884922.)
我通过使用options(scipen=99999)和options(digits=6)成功地使用了后一类数字。但是,前一个例子总是打印大量的零,后面跟着五个非零的数字。如何阻止这种情况的发生并实现我想要的结果?我也不想要科学符号。
我希望这适用于所有印刷数字在任何情况下。例如,如果我有一些矩阵,叫它A__,然后打印这个矩阵,我希望每个元素都是6-7位数。我希望这对每个上下文中的每一个打印都是自动的;就像使用options(digits=6)和options(scipen=99999)使每个上下文都自动化一样。
发布于 2013-01-05 14:09:50
可以为要打印的类型定义新的打印方法。例如,如果所有的数字都是双倍,则可以创建
print.double=function(x){sprintf("%.6f", x)}现在,当您打印双(或双倍向量)时,函数print.double()将被调用,而不是print.default()。
根据需要打印的类型,您可能必须创建类似的函数print.integer()、print.complex()等。
要返回默认的打印方法,只需删除函数print.double()。
发布于 2012-12-29 11:23:03
你们所有的数字都< 1吗?您可以尝试一个简单的sprintf( "%.6f", x )。否则,您可以尝试根据数字数将东西包装到sprintf;其他详细信息请查看?sprintf。
https://stackoverflow.com/questions/14080359
复制相似问题