如何在 ASCII 表中以科学计数法显示数字?

Posted

技术标签:

【中文标题】如何在 ASCII 表中以科学计数法显示数字?【英文标题】:How to display numbers in scientific notation in ASCII tables? 【发布时间】:2016-04-12 21:30:18 【问题描述】:

我试图在 ASCII 表中显示极小的数字 (

library(stargazer)
example <- data.frame(parameter = letters, value = runif(26, min = 1E-14, max = 5E-14))
stargazer(example, summary = F, type = "text", digits = NA)

即使我将数字选项设置为 NA,所有值都被截断为 0,这应该保留所有内容。非常感谢任何帮助!谢谢!

【问题讨论】:

你可以通过预先将它们转换为字符串来强制它......不是很漂亮,但它会工作。 【参考方案1】:

您可以将值转换为字符。我使用format 函数完成了这项工作,因为这样可以轻松控制有效数字的数量。我还使用了dplyr 包进行了即时重新格式化:

library(dplyr)

stargazer(example %>% mutate(value = format(value, scientific = TRUE, digits = 4)), 
          summary = FALSE, type = "text")
======================
   parameter   value  
----------------------
1      a     4.456e-14
2      b     2.773e-14
...
25     y     2.982e-14
26     z     1.771e-14
----------------------

你也可以像这样避免dplyr

example$value = format(example$value, scientific = TRUE, digits = 4)

stargazer(example, summary = FALSE, type = "text")

【讨论】:

【参考方案2】:

您似乎愿意接受作为字符的输出(至少如果我正确地解释了您对“ASCII”的使用)。也可以使用接受类似 Fortran 规范的sprintf

> formatC(2e-14, digits=16, format="f")
[1] "0.0000000000000200"
> print( formatC(2e-14, digits=16, format="f") , quote=FALSE)
[1] 0.0000000000000200
> cat( formatC(2e-14, digits=16, format="f") )
0.0000000000000200

科学记数法:

> cat( formatC(2e-14, digits=4, format="e") )
2.0000e-14

【讨论】:

谢谢 42-。我更喜欢用科学计数法来表示数字。

以上是关于如何在 ASCII 表中以科学计数法显示数字?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 numpy 矩阵中以科学形式显示数字?

如何让mssqlreal不用科学计数法显示

java字符串转数字如何不显示科学计数法

如何让EXCEL中的数据用科学计数法显示

Java导出csv数字如何不以科学计数显示,不能改变原来的值

如何把excel中已显示为科学计数法的数值取消科学计数法