構造一個數值向量,可以使用預定義的有效數字或小數點後最大或固定位數進行格式化。支持縮放,以及強製使用小數、科學或工程符號。如果給出了標簽,它會顯示在列的標題中。
當打印或格式化矢量時,以及在 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。