Помимо биннинга в geom_histogram, я узнал еще один способ, которым вы можете классифицировать непрерывные переменные по оси x, но не можете найти в сети - PullRequest
0 голосов
/ 04 июня 2019

Я вспоминаю, что изучал онлайн, я верю, что есть три варианта разделения непрерывных переменных как дискретных, но я больше не могу их найти. По сути, у меня есть шкала x от 1 до 60 (секунд), но поскольку их так много, размер выборки для каждого числа мал. Я хотел бы разбить его на шесть групп по десять из десяти (1: 9 секунд, 10-19 секунд и т. Д.), Чтобы большее количество выборок обеспечивало лучшее среднее значение (столбец y)

Я поместил код ниже, чтобы показать мою базовую отправную точку.

ggplot(data, aes(Seconds, Percentage))+
  geom_histogram()+
  scale_x_continuous(breaks = 1:60)

1 Ответ

0 голосов
/ 04 июня 2019

Один из подходов - указать geom_histogram(binwidth = 10).Но это не дает вам такого хорошего контроля;Я думаю, что ячейки начнутся с минимального значения и не обязательно будут выровнены по 1-10, 11-19 и т. Д.

set.seed(0)
data = data.frame(Seconds = rnorm(1000, mean = 30, sd = 9))
range(data$Seconds)

ggplot(data, aes(Seconds))+
  geom_histogram(binwidth = 10)
  scale_x_continuous(breaks = 1:60)

enter image description here

Другой вариант - сделать это самостоятельно и посчитать, сколько наблюдений в каждом бине.floor(your_var/binsize)*binsize - это хороший способ получить контейнеры, как вы описываете.

library(dplyr)
binsize = 10
data %>%
  count(bin = floor(Seconds/binsize)*binsize) %>%
  ggplot(aes(bin + binsize/2, n)) + geom_col()

enter image description here

...