Используя тидиверс, я собираюсь дискретизировать числовые данные с целью использования гистограммы для построения различных числовых диапазонов, как если бы данные были категоричными, путем ручного объявления места, где происходят сокращения, например, для возрастных групп илидиапазоны доходов.Я хочу иметь интервалы неравной ширины.
До сих пор я пробовал подход base R, используя cut()
и устанавливая ячейки с помощью breaks = c()
.Однако я замечаю, что в пакете ggplot2
существует набор функций cut_interval
, cut_width
и cut_number
.Я полагаю, что есть способ вручную установить интервальные сокращения, используя эти функции, потому что для варианта с интервалом и числом существует аргумент breaks
.
library(tidyverse)
mtcars <- as_tibble(mtcars)
mtcars %>%
count(cut_interval(mpg, n = 4))
#> # A tibble: 4 x 2
#> `cut_interval(mpg, n = 4)` n
#> <fct> <int>
#> 1 [10.4,16.3] 10
#> 2 (16.3,22.1] 13
#> 3 (22.1,28] 5
#> 4 (28,33.9] 4
mtcars %>%
count(cut_interval(mpg, n = 4, breaks = c(10, 18, 23, 28, 35)))
#> Error: Evaluation error: lengths of 'breaks' and 'labels' differ.
Создано в 2019-06-03 Представить пакет (v0.2.1)
Вышесказанное близко к тому, что я хочу, но оно устанавливает разрывы на основе количества интервалов.
В приведенном выше примере я хотел бы, чтобы мои группы были точно такими:
10-18, 19-23, 24-28, 29-35.
Возможно ли это с помощью breaks
аргумент?Спасибо.