chop_quantiles()
chops data by quantiles.
chop_deciles()
is a convenience function which chops into deciles.
Usage
chop_quantiles(
x,
probs,
...,
left = is.numeric(x),
raw = FALSE,
weights = NULL
)
chop_deciles(x, ...)
brk_quantiles(probs, ..., weights = NULL)
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.- ...
For
chop_quantiles
, passed tochop()
. Forbrk_quantiles()
, passed tostats::quantile()
orHmisc::wtd.quantile()
.- left
Logical. Left-closed or right-closed breaks?
- raw
Logical. Use raw values in labels?
- weights
NULL
or numeric vector of same length asx
. If notNULL
,Hmisc::wtd.quantile()
is used to calculate weighted quantiles.
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()
.
If x
contains duplicates, consecutive quantiles may be the same number
so that some intervals get merged.
See also
Other chopping functions:
chop()
,
chop_equally()
,
chop_evenly()
,
chop_fn()
,
chop_mean_sd()
,
chop_n()
,
chop_proportions()
,
chop_width()
,
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]
# duplicates:
tab_quantiles(c(1, 1, 1, 2, 3), 1:5/5)
#> {20%} [60%, 80%) [80%, 100%]
#> 3 1 1
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