首页 > 解决方案 > 如何控制小数点后数字的长度?

问题描述

我正在使用包'pastecs'的函数'stat.desc'来分析包'Mass'中的数据'Michelson'。尽管我设置了选项(数字 = 3),但它仍然返回太久的结果。有没有办法修改这个?

options(digits = 3,scipen=200)
stat.desc(michelson$Speed)

结果是这样的:

 nbr.val     nbr.null       nbr.na          min          max        range 
    100.0000       0.0000       0.0000     620.0000    1070.0000     450.0000 
         sum       median         mean      SE.mean CI.mean.0.95          var 
  85240.0000     850.0000     852.4000       7.9011      15.6774    6242.6667 
     std.dev     coef.var 
     79.0105       0.0927 

标签: r

解决方案


如果您查看?stat.desc没有更改位数的机制。如果您查看该函数的代码,则没有为结果分配类属性。如果您查看print.default我认为对控制台进行的任何显示,您会看到参数部分中描述的数字参数:

数字
的非空值指定要在值中打印的有效数字的最小数量。

您显然认为它将改为控制最大位数。对不起。如果您希望以更少的位数显示位数,则需要使用允许该级别控制的函数。

不幸的是,对于这种思想交流,您没有提供可重现的示例,因此我想我会查看帮助页面中的示例。但是,这似乎不适合您的问题:

 op <- options(digits = 3,scipen=200)
 data(marbio)
 stat.desc(marbio[,13:16])
#---------------------------------------------
              Nauplii     Oithona Acanthaires Cladocerans
nbr.val         68.00      68.000      68.000       68.00
nbr.null         0.00       0.000       8.000       45.00
nbr.na           0.00       0.000       0.000        0.00
min              3.00      39.000       0.000        0.00
max            636.00    7792.000      52.000      200.00
range          633.00    7753.000      52.000      200.00
sum           9018.00  105159.000     987.000      394.00
median         104.00    1228.000      12.000        0.00
mean           132.62    1546.456      14.515        5.79
SE.mean         12.54     155.439       1.459        3.04
CI.mean.0.95    25.03     310.258       2.912        6.06
var          10696.48 1642971.655     144.731      626.76
std.dev        103.42    1281.785      12.030       25.04
coef.var         0.78       0.829       0.829        4.32
#------
 options(op)

因此,如果您可以将输出分配给命名对象然后dput在其上运行,您将能够将该输出剪切并粘贴到问题的正文中。(不要为此目的使用注释。)


推荐阅读