#r #ggplot2
#r #ggplot2
Вопрос:
В базе R я могу создавать пользовательские ячейки с помощью cut
. Например, я могу создать эти ячейки для построения графика:
data.frame(x = c(5, 1, 3, 2, 2, 3)) %>% mutate(bin = cut(x, breaks = c(0,3,5)))
x bin
1 5 (3,5]
2 1 (0,3]
3 3 (0,3]
4 2 (0,3]
5 2 (0,3]
6 3 (0,3]
Возможно ли это с ggplot2::cut_width
помощью или cut_interval
?
Я хочу вручную указать диапазон значений в каждой ячейке.
Комментарии:
1. Re: «Например, я могу создать три ячейки для построения графика» Обратите внимание, что для n разрывов создается n-1 ячеек. И вы можете указать любые желаемые разрывы, которые охватывают данные.
Ответ №1:
Почему бы просто не использовать cut
?
library(dplyr)
library(ggplot2)
data.frame(x = c(5, 1, 3, 2, 2, 3)) %>%
ggplot(aes(x = cut(x, breaks = c(0,3,5))))
geom_bar()
xlab("x")
Метка оси x по умолчанию громоздка, но ее легко изменить.
Комментарии:
1. Я заметил, что он преобразует некоторые значения в моих данных в NA. например, ноль — это реальные данные, но он преобразуется в NA, даже если используется breaks = c(0,3,5)
2. Внутри
cut()
используйтеinclude.lowest = TRUE
:cut(x, breaks = c(0,3,5), include.lowest = TRUE))
.