在R中使用科学计数法

10

我目前正在使用printCoefmat将矩阵打印出来,并希望对数字应用一些格式。

当数字的指数大于3时,我想强制使用科学计数法。 我无法完全理解scipen的工作原理,有没有人知道我怎么做呢?


3
“options("scipen")” 可能是您要查找的。 - user1981275
1个回答

15

只需输入一个大数,R 就会显示非科学计数法。

options( scipen = 20 )

如果这还不够,请增加数字的大小...

科学计数法惩罚如何工作?

虽然很令人困惑,但是惩罚应用于科学计数法版本,就像R会查看打印特定字符串需要多少个字符。它将scipen值惩罚加到科学计数法中的字符数上,如果它仍然比打印实际数字所需的字符数小,则会打印科学计数法,反之亦然。我希望这个例子能说明问题:

options( scipen = 0 )
options( digits = 6 )
>1e5
#[1] 1e+05    ----> 5 characters in scientific, vs. 6 for '100000' in normal
>1e4
#[1] 10000    ----> 5 characters in normal, vs. 5 for '1e+04' in scientific
options(scipen = 1 )
>1e5
#[1] 100000    ----> 6 characters in normal, vs. 5 + 1 for '1e+05' + scipen penalty in scientific

难道不是相反吗?文档中指出:“整数。在决定以固定或指数表示法打印数字值时要应用的惩罚。正值偏向于固定表示法,负值则偏向于科学表示法:除非固定表示法比scipen位更宽,否则将优先选择固定表示法。” - Phyx
但我知道这个选项,只是不太清楚如何使用它。有一个惩罚,但惩罚是针对什么的?它决定要做什么的截止值在哪里? - Phyx
@Phyx 我已经加了一个解释。希望这能为你提供帮助。 - Simon O'Hanlon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接