控制数字的显示

默认情况下,Tibbles打印带有三个有效数字的数字,如果可用空间太小,请切换到科学记数法。下划线用于突出显示三位数组。显示器与数据帧的默认显示不同,请参见渐晕(“数字”)了解差异概述。这种显示适用于许多用例,但并非适用于所有用例。

图书馆(tibble)

选项

自定义数字和其他数据显示的最简单方法一个难题是定义选项。请参见?柱::柱选项以获得全面概述。

易怒的(x个= 123.4567)
#>#A台:1×1
#>x个
#><数据库>
#> 1 123.4567
古老的<- 选项(立柱式滑梯= 7)
易怒的(x个= 123.4567)
#>#A兼容:1×1
#>x个
#><数据库>
#> 1 123.4567
#恢复旧选项,另请参阅rlang::local_options()以获得更优雅的方法
选项(旧)

这将更改所有列的显示。继续阅读,看看如何逐列指定显示选项。

每列数字格式

新的num()构造函数允许创建向量行为类似于数字,但允许自定义其显示。以下是一些示例如所示,请参见?号码以获得全面概述。同样,char()允许自定义字符列。

号码(-1:,符号= “科学情报”)
#><柱_num(sci)[5]>
#>[1]-1e0
易怒的(
  x4个= 号码(8:12 * 100 + 0.5,数字= 4),
  x1个= 号码(8:12 * 100 + 0.5,数字= -1),
  美元= 号码(8:12 * 100 + 0.5,数字= 2,标签= “美元”),
  百分比= 号码(8:12 / 100 + 0.0005,标签= "%",刻度= 100),
  发动机= 号码(10^(-:1),符号= “eng”(工程),固定指数= -Inf公司),
  硅= 号码(10^(-:1)* 123,符号= “si”),
  字符= 烧焦(粘贴(字母,坍塌= " "),缩短= “中间”)
)
#>#A台:5×7
#>x4 x1 usd百分比eng si char
#><编号:.4!><数字:.1>美元%[e-3]<si><char>
#>1 800.5000 800.5 800.50 8.05 1 123米A B C D E F G…T U V W X Y Z
#>2 900.5000 900.5 900.50 9.05 10 1.23 A B C D E F G…T U V W X Y Z
#>3 1000.5000 1000.5 1000.50 10.05 100 12.3 A B C D E F G…T U V W X Y Z
#>4 1100.5000 1100.5 1100.50 11.05 1000 123 A B C D E F G…T U V W X Y Z
#>5 1200.5000 1200.5 1200.50 12.05 10000 1.23k A B C D E F G…T U V W X Y Z

用于展示藏品的支柱组件试图正确显示数字,但这是不可能的适应所有用例。每当默认格式不适合应用程序,num()char()允许重新定义各个列的格式。格式化能够经受大多数数据转换。

基于规则的数字格式

目前,必须手动为每列应用格式。这个以下模式可能有助于对tibble或基于名称的某些列。

图书馆(dplyr,警告.冲突= 错误的)

市场<-
  as_表格(欧洲股票市场)%>%
  突变(时间= 时间(欧洲股票市场),.之前= 1)

市场
#>#A台:1860×5
#>时间DAX SMI CAC FTSE
#><dbl><dbl>
#>  1 1991.496 1628.75 1678.1 1772.8 2443.6
#>  2 1991.5   1613.63 1688.5 1750.5 2460.2
#>  3 1991.504 1606.51 1678.6 1718   2448.2
#>  4 1991.508 1621.04 1684.1 1708.1 2470.4
#>  5 1991.512 1618.16 1686.6 1723.1 2484.7
#>  6 1991.515 1610.61 1671.6 1714.3 2466.8
#>  7 1991.519 1630.75 1682.9 1734.5 2487.9
#>  8 1991.523 1640.17 1703.6 1757.4 2508.4
#>  9 1991.527 1635.47 1697.5 1754   2510.5
#> 10 1991.531 1645.89 1716.3 1754.3 2497.4
#>#…还有1850行
市场%>%
  突变(穿过(-时间,~ 号码(.x,数字= )))
#>#A台:1860×5
#>时间DAX SMI CAC FTSE
#><数据库><编号:.3!><数字:.3!><数量:.3!><数量:.3!>
#>  1 1991.496  1628.750  1678.100  1772.800  2443.600
#>  2 1991.5    1613.630  1688.500  1750.500  2460.200
#>  3 1991.504  1606.510  1678.600  1718.000  2448.200
#>  4 1991.508  1621.040  1684.100  1708.100  2470.400
#>  5 1991.512  1618.160  1686.600  1723.100  2484.700
#>  6 1991.515  1610.610  1671.600  1714.300  2466.800
#>  7 1991.519  1630.750  1682.900  1734.500  2487.900
#>  8 1991.523  1640.170  1703.600  1757.400  2508.400
#>  9 1991.527  1635.470  1697.500  1754.000  2510.500
#> 10 1991.531  1645.890  1716.300  1754.300  2497.400
#>#…还有1850行

正在计算号码

格式化数字对于显示结果很有用。如果已定义在分析的早期,格式选项保存最久操作。值得定义一次适合您的数据的输出选项在过程的早期,从整个分析。我们正在努力将此格式无缝应用于最终演示(绘图、表格等)。

算术

对由创建的数字应用算术运算时num(),结果继承第一个号码对象。

号码(1)+ 2
#><柱_数值[1]>
#> [1] 3
1 + 号码(2)
#><柱_数值[1]>
#> [1] 3
1升+ 号码(2)
#><柱_数值[1]>
#> [1] 3
号码(3.23456,西格菲格= 4)- 号码(2)
#><pillar_num:4[1]
#> [1] 1.235
号码(4,信号= 2)* 号码(,数字= 2)
#><pillar_num:2[1]
#> [1] 12
号码(,数字= 2)* 号码(4,西格菲格= 2)
#><柱数:.2![1]>
#> [1] 12.00
-号码(2)
#><柱_数值[1]>
#> [1] -2

数学

类似地,对于数学运算,格式为继承。

最小值(号码(1:,标签= "$"))
#><pillar_num{$}[1]
#> [1] 1
意思是(号码(1:,符号= “eng”(工程)))
#><柱_num(eng)[1]
#>[1]2e0
(号码(1:,标签= "%",刻度= 100))
#><柱_数值{%}*100[3]>
#> [1] 84.14710 90.92974 14.11200

覆盖

在某些情况下,理想的格式会在转换后更改。num()可以重复应用,最后一次设置获胜。

号码(1: + 0.125,数字= 4)
#><柱数:.4![3]>
#> [1] 1.1250 2.1250 3.1250
转换<- 10^号码(1: + 0.125,数字= 4)
转换
#><柱数:.4![3]>
#> [1]   13.3352  133.3521 1333.5214
号码(变压器,信号= )
#><柱数量:3[3]>
#> [1]   13.3  133.  1334

恢复

这个var()函数是其中一个示例,其中格式丢失:

x个<- 号码(c(c)(1,2,4),符号= “eng”(工程))
无功功率,无功功率(x)
#> [1] 2.333333

这个中位数()功能更差,它会中断数字()物体:

中值的(x)
#>“median()”中的错误:
#> ! `median.pillar_num()`未实现。

恢复的一种方法是应用num()结果:

号码(无功功率,无功功率(x) ,符号= “eng”(工程))
#><柱_num(eng)[1]
#>[1]2.333333e0
号码(中值的(as.数字(x) ),符号= “eng”(工程))
#><柱_num(eng)[1]
#>[1]2e0

对于自动恢复,我们还可以定义var(),甚至覆盖基本实现。请注意这种模式仍处于实验阶段,可能会发生变化:

无功功率,无功功率_<- 功能(x,…){
外面的<- 无功功率,无功功率(vctrs)::vec_代理(x) ,…)
压控变压器::vec_restore(输出,x)
}
无功功率,无功功率_(x)
#><柱_num(eng)[1]
#>[1]2.333333e0

此模式可应用于所有失去格式化。这个make_restore()下面定义的函数是使用函数并返回派生函数的函数工厂功能:

make_restore(标记_存储)<- 功能(有趣){
  (有趣)
  功能(x,…){
外面的<- 乐趣(真空断路器::vec_代理(x) ,…)
压控变压器::vec_restore(输出,x)
}
}

无功功率,无功功率_<- make_restore(标记_存储)(变量)
标准偏差_<- make_restore(标记_存储)(sd)

无功功率,无功功率_(x)
#><柱_num(eng)[1]
#>[1]2.333333e0
标准偏差_(x)
#><柱_num(eng)[1]
#>[1]1.527525e0