chop_quantiles()
chops data by quantiles.
chop_deciles()
is a convenience shortcut and chops into deciles.
Usage
chop_quantiles(x, probs, ..., left = is.numeric(x), raw = FALSE)
chop_deciles(x, ...)
brk_quantiles(probs, ...)
tab_quantiles(x, probs, ..., left = is.numeric(x), raw = FALSE)
tab_deciles(x, ...)
Arguments
- x
A vector.
- probs
A vector of probabilities for the quantiles. If
probs
has names, these will be used for labels.- ...
Passed to
chop()
, or forbrk_quantiles()
tostats::quantile()
.- left
Logical. Left-closed or right-closed breaks?
- raw
Logical. Use raw values in labels?
Value
chop_*
functions return a factor
of the same length as x
.
brk_*
functions return a function
to create breaks
.
tab_*
functions return a contingency table()
.
Details
For non-numeric x
, left
is set to FALSE
by default. This works better
for calculating "type 1" quantiles, since they round down. See
stats::quantile()
.
See also
Other chopping functions:
chop_equally()
,
chop_evenly()
,
chop_fn()
,
chop_mean_sd()
,
chop_n()
,
chop_proportions()
,
chop_width()
,
chop()
,
fillet()
Examples
chop_quantiles(1:10, 1:3/4)
#> [1] [0%, 25%) [0%, 25%) [0%, 25%) [25%, 50%) [25%, 50%) [50%, 75%)
#> [7] [50%, 75%) [75%, 100%] [75%, 100%] [75%, 100%]
#> Levels: [0%, 25%) [25%, 50%) [50%, 75%) [75%, 100%]
chop_quantiles(1:10, c(Q1 = 0, Q2 = 0.25, Q3 = 0.5, Q4 = 0.75))
#> [1] Q1 Q1 Q1 Q2 Q2 Q3 Q3 Q4 Q4 Q4
#> Levels: Q1 Q2 Q3 Q4
chop(1:10, brk_quantiles(1:3/4))
#> [1] [0%, 25%) [0%, 25%) [0%, 25%) [25%, 50%) [25%, 50%) [50%, 75%)
#> [7] [50%, 75%) [75%, 100%] [75%, 100%] [75%, 100%]
#> Levels: [0%, 25%) [25%, 50%) [50%, 75%) [75%, 100%]
chop_deciles(1:10)
#> [1] [0%, 10%) [10%, 20%) [20%, 30%) [30%, 40%) [40%, 50%) [50%, 60%)
#> [7] [60%, 70%) [70%, 80%) [80%, 90%) [90%, 100%]
#> 10 Levels: [0%, 10%) [10%, 20%) [20%, 30%) [30%, 40%) [40%, 50%) ... [90%, 100%]
# to label by the quantiles themselves:
chop_quantiles(1:10, 1:3/4, raw = TRUE)
#> [1] [1, 3.25) [1, 3.25) [1, 3.25) [3.25, 5.5) [3.25, 5.5) [5.5, 7.75)
#> [7] [5.5, 7.75) [7.75, 10] [7.75, 10] [7.75, 10]
#> Levels: [1, 3.25) [3.25, 5.5) [5.5, 7.75) [7.75, 10]
set.seed(42)
tab_quantiles(rnorm(100), probs = 1:3/4, raw = TRUE)
#> [-2.993, -0.6167) [-0.6167, 0.0898) [0.0898, 0.6616) [0.6616, 2.287]
#> 25 25 25 25