构造一个数值向量,可以使用预定义的有效数字或小数点后最大或固定位数进行格式化。支持缩放,以及强制使用小数、科学或工程符号。如果给出了标签,它会显示在列的标题中。
当打印或格式化矢量时,以及在 tibble 列中,会应用该格式。格式化注释和类可以在大多数算术转换中幸存下来,最显著的例外是 var()
和 sd()
。
set_num_opts()
将格式化选项添加到任意数值向量,对于与其他类型组合非常有用。
用法
num(
x,
...,
sigfig = NULL,
digits = NULL,
label = NULL,
scale = NULL,
notation = c("fit", "dec", "sci", "eng", "si"),
fixed_exponent = NULL,
extra_sigfig = NULL
)
set_num_opts(
x,
...,
sigfig = NULL,
digits = NULL,
label = NULL,
scale = NULL,
notation = c("fit", "dec", "sci", "eng", "si"),
fixed_exponent = NULL,
extra_sigfig = NULL
)
参数
- x
-
一个数值向量。
- ...
-
这些点用于将来的扩展,并且必须为空。
- sigfig
-
定义要显示的有效数字位数。必须是 1 或更大。不参考
"pillar.sigfig"
option。不能与digits
结合使用。 - digits
-
要显示的小数点后的位数。正数指定要显示的确切位数。负数指定(求负后)要显示的最大位数。对于
digits = 2
,数字 1.2 和 1.234 分别打印为 1.20 和 1.23,而digits = -2
则分别打印为 1.2 和 1.23。不能与sigfig
结合使用。 - label
-
显示标签而不是类型说明。
- scale
-
显示前应用于数据的乘数。用于显示例如百分比。必须与
label
结合使用。 - notation
-
"fit"
、"dec"
、"sci"
、"eng"
或"si"
之一。-
"fit"
:如果适合且消耗 13 位或更少,则使用小数表示法,否则使用科学计数法。 (数字柱的默认值。) -
"dec"
:使用十进制表示法,无论宽度如何。 -
"sci"
:使用科学记数法。 -
"eng"
:使用工程符号,即使用三的倍数指数的科学符号。 -
"si"
:使用 SI 表示法,支持1e-24
和1e24
之间的前缀。
-
- fixed_exponent
-
对科学、工程或 SI 表示法中的所有数字使用相同的指数。
-Inf
使用数据中存在的最小数据,+Inf
使用数据中最大的 fixed_exponent。默认设置是使用不同的指数。 - extra_sigfig
-
如果是
TRUE
,如果数据由大小相同但存在细微差别的数字组成,则增加有效位数。
也可以看看
其他向量类:char()
例子
# Display as a vector
num(9:11 * 100 + 0.5)
#> <pillar_num[3]>
#> [1] 900. 1000. 1100.
# Significant figures
tibble(
x3 = num(9:11 * 100 + 0.5, sigfig = 3),
x4 = num(9:11 * 100 + 0.5, sigfig = 4),
x5 = num(9:11 * 100 + 0.5, sigfig = 5),
)
#> # A tibble: 3 × 3
#> x3 x4 x5
#> <num:3> <num:4> <num:5>
#> 1 900. 900.5 900.5
#> 2 1000. 1000. 1000.5
#> 3 1100. 1100. 1100.5
# Maximum digits after the decimal points
tibble(
x0 = num(9:11 * 100 + 0.5, digits = 0),
x1 = num(9:11 * 100 + 0.5, digits = -1),
x2 = num(9:11 * 100 + 0.5, digits = -2),
)
#> # A tibble: 3 × 3
#> x0 x1 x2
#> <num:.0> <num:.1> <num:.2>
#> 1 900. 900.5 900.5
#> 2 1000. 1000.5 1000.5
#> 3 1100. 1100.5 1100.5
# Use fixed digits and a currency label
tibble(
usd = num(9:11 * 100 + 0.5, digits = 2, label = "USD"),
gbp = num(9:11 * 100 + 0.5, digits = 2, label = "£"),
chf = num(9:11 * 100 + 0.5, digits = 2, label = "SFr")
)
#> # A tibble: 3 × 3
#> usd gbp chf
#> USD £ SFr
#> 1 900.50 900.50 900.50
#> 2 1000.50 1000.50 1000.50
#> 3 1100.50 1100.50 1100.50
# Scale
tibble(
small = num(9:11 / 1000 + 0.00005, label = "%", scale = 100),
medium = num(9:11 / 100 + 0.0005, label = "%", scale = 100),
large = num(9:11 / 10 + 0.005, label = "%", scale = 100)
)
#> # A tibble: 3 × 3
#> small medium large
#> % % %
#> 1 0.905 9.05 90.5
#> 2 1.00 10.0 100.
#> 3 1.10 11.0 110.
# Notation
tibble(
sci = num(10^(-13:6), notation = "sci"),
eng = num(10^(-13:6), notation = "eng"),
si = num(10^(-13:6), notation = "si"),
dec = num(10^(-13:6), notation = "dec")
)
#> # A tibble: 20 × 4
#> sci eng si dec
#> <sci> <eng> <si> <dec>
#> 1 1e-13 100e-15 100f 0.0000000000001
#> 2 1e-12 1e-12 1p 0.000000000001
#> 3 1e-11 10e-12 10p 0.00000000001
#> 4 1e-10 100e-12 100p 0.0000000001
#> 5 1e- 9 1e- 9 1n 0.000000001
#> 6 1e- 8 10e- 9 10n 0.00000001
#> 7 1e- 7 100e- 9 100n 0.0000001
#> 8 1e- 6 1e- 6 1µ 0.000001
#> 9 1e- 5 10e- 6 10µ 0.00001
#> 10 1e- 4 100e- 6 100µ 0.0001
#> 11 1e- 3 1e- 3 1m 0.001
#> 12 1e- 2 10e- 3 10m 0.01
#> 13 1e- 1 100e- 3 100m 0.1
#> 14 1e+ 0 1e+ 0 1 1
#> 15 1e+ 1 10e+ 0 10 10
#> 16 1e+ 2 100e+ 0 100 100
#> 17 1e+ 3 1e+ 3 1k 1000
#> 18 1e+ 4 10e+ 3 10k 10000
#> 19 1e+ 5 100e+ 3 100k 100000
#> 20 1e+ 6 1e+ 6 1M 1000000
# Fixed exponent
tibble(
scimin = num(10^(-7:6) * 123, notation = "sci", fixed_exponent = -Inf),
engmin = num(10^(-7:6) * 123, notation = "eng", fixed_exponent = -Inf),
simin = num(10^(-7:6) * 123, notation = "si", fixed_exponent = -Inf)
)
#> # A tibble: 14 × 3
#> scimin engmin simin
#> [e-5] [e-5] [µ]
#> 1 1.23 12.3 12.3
#> 2 12.3 123 123
#> 3 123 1230 1230
#> 4 1230 12300 12300
#> 5 12300 123000 123000
#> 6 123000 1230000 1230000
#> 7 1230000 12300000 12300000
#> 8 12300000 123000000 123000000
#> 9 123000000 1230000000 1230000000
#> 10 1230000000 12300000000 12300000000
#> 11 12300000000 123000000000 123000000000
#> 12 123000000000 1230000000000 1230000000000
#> 13 1230000000000 12300000000000 12300000000000
#> 14 12300000000000 123000000000000 123000000000000
tibble(
scismall = num(10^(-7:6) * 123, notation = "sci", fixed_exponent = -3),
scilarge = num(10^(-7:6) * 123, notation = "sci", fixed_exponent = 3),
scimax = num(10^(-7:6) * 123, notation = "sci", fixed_exponent = Inf)
)
#> # A tibble: 14 × 3
#> scismall scilarge scimax
#> [e-3] [e3] [e8]
#> 1 0.0123 0.0000000123 0.000000000000123
#> 2 0.123 0.000000123 0.00000000000123
#> 3 1.23 0.00000123 0.0000000000123
#> 4 12.3 0.0000123 0.000000000123
#> 5 123 0.000123 0.00000000123
#> 6 1230 0.00123 0.0000000123
#> 7 12300 0.0123 0.000000123
#> 8 123000 0.123 0.00000123
#> 9 1230000 1.23 0.0000123
#> 10 12300000 12.3 0.000123
#> 11 123000000 123 0.00123
#> 12 1230000000 1230 0.0123
#> 13 12300000000 12300 0.123
#> 14 123000000000 123000 1.23
#' Extra significant digits
tibble(
default = num(100 + 1:3 * 0.001),
extra1 = num(100 + 1:3 * 0.001, extra_sigfig = TRUE),
extra2 = num(100 + 1:3 * 0.0001, extra_sigfig = TRUE),
extra3 = num(10000 + 1:3 * 0.00001, extra_sigfig = TRUE)
)
#> # A tibble: 3 × 4
#> default extra1 extra2 extra3
#> <num> <num> <num> <num>
#> 1 100. 100.001 100.0001 10000.00001
#> 2 100. 100.002 100.0002 10000.00002
#> 3 100. 100.003 100.0003 10000.00003
相关用法
- R tibble new_tibble Tibble 构造函数和验证器
- R tibble tibble 构建 DataFrame 架
- R tibble char 设置字符向量格式
- R tibble frame_matrix 逐行矩阵创建
- R tibble rownames 用于处理行名称的工具
- R tibble enframe 将向量转换为数据帧,反之亦然
- R tibble add_row 将行添加到 DataFrame
- R tibble as_tibble 将列表、矩阵等强制转换为 DataFrame
- R tibble subsetting 子集化标题
- R tibble tibble_options 封装选项
- R tibble add_column 将列添加到 DataFrame
- R tibble lst 建立一个清单
- R tibble formatting 打印小标题
- R tibble tribble 逐行小标题创建
- R tidyr separate_rows 将折叠的列分成多行
- R tidyr extract 使用正则表达式组将字符列提取为多列
- R tidyr chop 砍伐和砍伐
- R tidyr pivot_longer_spec 使用规范将数据从宽转为长
- R tidyr unnest_longer 将列表列取消嵌套到行中
- R tidyr uncount “计数” DataFrame
- R tidyr cms_patient_experience 来自医疗保险和医疗补助服务中心的数据
- R tidyr pivot_wider_spec 使用规范将数据从长轴转向宽轴
- R tidyverse tidyverse_update 更新 tidyverse 软件包
- R tidyr replace_na 将 NA 替换为指定值
- R tidyr unnest_wider 将列表列取消嵌套到列中
注:本文由纯净天空筛选整理自Kirill Müller等大神的英文原创作品 Format a numeric vector。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。