我想要实现的是最大显示所有打印的数字 7
数字。以下是我想要打印的示例:
0.000000 (versus the actual number which is 0.000000000029481.....)
0.299180 (versus the actual number which is 0.299180291884922.....)
我使用
options(scipen=99999)
成功处理了后一种类型的数字和 options(digits=6)
.但是,前一个示例将始终打印大量零,后跟五个非零数字。 我如何阻止这种情况发生并达到我想要的结果 ?我也不想要科学记数法。我希望这适用于每个上下文中的所有打印数字。例如,如果我有一些矩阵,称之为
A
,我打印这个矩阵,我希望每个元素都是 6-7 位数字。我希望这对于每个上下文中的每个打印都是自动的;就像使用 options(digits=6)
和 options(scipen=99999)
使其在每个上下文中都是自动的。
最佳答案
您可以为要打印的类型定义新的打印方法。例如,如果您的所有数字都是 double ,您可以创建
print.double=function(x){sprintf("%.6f", x)}
现在,当您打印 double (或 double 向量)时,函数
print.double()
将被调用而不是 print.default()
.您可能需要创建类似的函数
print.integer()
, print.complex()
等,具体取决于您需要打印的类型。要返回默认打印方法,只需删除函数
print.double()
.
关于r - 停止打印大量零(不是科学计数法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14080359/