我使用lm()函数在R中运行回归,我无法以简单的格式显示结果。我需要打印一个p值向量:
> summary(lm)$coef[,4]
(Intercept) lun d1un
1.433706e-01 4.673723e-158 6.629044e-04
如何覆盖科学记数法并获得合理的精确度?我尝试了选项(scipen = 1000),但它显示了无穷无尽的数字行,不知何故,选项(数字= 7)在这里不起作用。
我知道我可以使用格式和短跑等内容,但我想为所有数字输出设置默认显示规则,例如不超过6位小数。
答案 0 :(得分:0)
我不认为这是可能的,因为整个R. ?options
的一般显示都是关于数字的说法:
‘digits’: controls the number of digits to print when printing
numeric values. It is a suggestion only. Valid values are
1...22 with default 7. See the note in ‘print.default’ about
values greater than 15.
关键词是“这只是一个建议”。
接下来,请注意,打印的内容首先由应用的print()
方法控制(这在交互式使用期间隐藏,因为R自动 - print()
s)。有关详细信息,请参阅?print
和?print.default
了解基本方法。从?print.default
我们注意到
digits: a non-null value for ‘digits’ specifies the minimum number of
significant digits to be printed in values. The default,
‘NULL’, uses ‘getOption(digits)’. (For the interpretation
for complex numbers see ‘signif’.) Non-integer values will
be rounded down, and only values greater than or equal to 1
and no greater than 22 are accepted.
在详细信息部分中,我们有:
The same number of decimal places is used throughout a vector.
This means that ‘digits’ specifies the minimum number of
significant digits to be used, and that at least one entry will be
encoded with that minimum number. However, if all the encoded
elements then have trailing zeroes, the number of decimal places
is reduced until at least one element has a non-zero final digit.
Decimal points are only included if at least one decimal place is
selected.
digits
的默认值为NULL
,表示使用了getOption("digits")
,但正如我们已经指出的那样,这只是一个指南。
似乎没有办法配置R来执行您想要的操作或全局操作。您需要重写print.default()
或您需要使用的所有print()
方法,并使用这些版本而不是标准版本 - 现在使用NAMESPACES并不容易。