R 停止打印大量零(非科学记数法)

R 停止打印大量零(非科学记数法),r,printing,numbers,digits,scientific-notation,R,Printing,Numbers,Digits,Scientific Notation,我试图实现的是让所有打印的数字以最大7位数显示。以下是我想要打印的内容的示例: 0.000000(相对于实际数字0.0000000000 29481…) 0.299180(与实际数字0.299180291884922相比……) 通过使用options(scipen=99999)和options(digits=6),我成功地使用了后一种类型的数字。但是,前一个示例总是打印大量的零,后跟五个非零数字我如何阻止这种情况发生并实现我的预期结果?我也不想要科学记数法 我希望这适用于所有上下文中的所有打印数

我试图实现的是让所有打印的数字以最大
7
位数显示。以下是我想要打印的内容的示例:

0.000000(相对于实际数字0.0000000000 29481…)

0.299180(与实际数字0.299180291884922相比……)

通过使用
options(scipen=99999)
options(digits=6)
,我成功地使用了后一种类型的数字。但是,前一个示例总是打印大量的零,后跟五个非零数字我如何阻止这种情况发生并实现我的预期结果?我也不想要科学记数法


我希望这适用于所有上下文中的所有打印数字。例如,如果我有一些矩阵,称之为
A
,我打印这个矩阵,我希望每个元素都是6-7位数字。我希望这是自动为每一个打印在每一个上下文;就像使用
选项(数字=6)
选项(scipen=99999)
使它对每个上下文都是自动的。

您的数字都是<1吗?您可以尝试一个简单的
sprintf(“%.6f”,x)
。否则,您可以尝试根据位数将内容包装到
sprintf
;检查
?sprintf
了解其他详细信息。

您可以为要打印的类型定义新的打印方法。例如,如果所有数字都是双倍的,则可以创建

print.double=function(x){sprintf("%.6f", x)}
现在,当您打印一个double(或一个double向量)时,将调用函数
print.double()
,而不是
print.default()

根据需要打印的类型,您可能需要创建类似的函数
print.integer()
print.complex()
,等等


要返回默认的打印方法,只需删除函数
print.double()

如果您有一个大的数字,例如123456789.87654321。如果你不打算使用科学记数法,你怎么能用最多7位数字来打印呢@弗洛德尔说得对。也许我希望这些非常大的数字使用科学记数法(或者扩展到6位以上)。但如果只存在一个截断每个dumber的解,则执行6-7个数字;这很好,因为我从不处理需要在R控制台中打印的大数字;一个类似于
选项(数字=6)
的解决方案,它只适用于每个上下文中的每个对象,我只需要设置一次。并非所有内容都小于1,但我需要以交互方式打印的所有内容都小于100。