r - 停止打印大量零(不是科学计数法)

标签 r printing numbers digits scientific-notation

我想要实现的是最大显示所有打印的数字 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/

相关文章:

r - 为什么 geom_hline 不在 ggplot2 中生成图例?

windows - 网络中断时打印到本地共享打印机

html - 执行文件 -> 打印时嵌入 PDF 内容

c - 二进制到十进制和十六进制(一点一点)

python - 查找列表及其子列表的平均值的问题

r - 将后续的非 na 值设置为 NA

r - ggplot2 每行数据框一行

performance - 为什么在 data.frame 中预先指定类型会更慢?

c++ - 如何使我的 C++ ActiveX 控件在 Excel 中很好地打印?

matlab - 如何在matlab中随机生成极限[m,n]中的所有数字?