通过 cut() 在 R 中定义间隔并制作直方图

Defined interval in R by cut() and make a histogram plot

我正在努力弄清楚如何使用 cut() 函数通过 12 months 定义我感兴趣的数据的 interval。我读了这个 post R - Cut by Defined Interval。但这对我正在寻找的东西没有帮助。

说,我有一组数据名称 months,其值小于 year <12 个月,直到 50 months

set.seed(50); sample(50) -> months

我想使用 cut() 函数获取每年的数据数量,包括 < 12 months

> cut(months, breaks =  seq(12,50, by= 12))-> output
> output
 [1] (24,36] (12,24] <NA>    (36,48] (12,24] <NA>    (24,36] (24,36] <NA>    <NA>   
[11] (12,24] <NA>    (24,36] (36,48] (36,48] (36,48] (24,36] (12,24] (36,48] <NA>   
[21] (12,24] (36,48] (12,24] (12,24] <NA>    (12,24] (12,24] (24,36] <NA>    <NA>   
[31] (12,24] (36,48] (24,36] (36,48] <NA>    <NA>    (36,48] (12,24] (36,48] (24,36]
[41] (36,48] (12,24] (24,36] <NA>    <NA>    (24,36] <NA>    (24,36] (24,36] (36,48]
Levels: (12,24] (24,36] (36,48]

> table(output)
output
(12,24] (24,36] (36,48] 
     12      12      12

问题

1- 如何获得 < 12 months 的数据数量 我一直有 12 个月 interval?

我试过了,但没有用!

> cut(months, breaks =  seq(1,12,50, by= 12))-> output

2- 如何根据这些数据绘制 hist() 图?

谢谢,

set.seed(50)
months <- sample(50)

output <- cut(months, breaks = seq(0,50, by= 12), labels = c("<12","12-24","24-35","36-50"))

hist(as.numeric(output))

您必须手动编辑直方图上的轴值,因为它们的标记间隔为 1-4。正如我在评论中提到的那样。考虑到所有值都相等,直方图的信息量不是很大。

geom_col() 将为您提供更清晰的直方图,因为数据已经处于频率 table 中。

library(dplyr)
library(ggplot2)

set.seed(50)
months <- sample(50)

output <- cut(months, breaks = seq(0,50, by= 12), labels = c("<12","12-24","24-35","36-50"))

table(output) %>% 
  as.data.frame() %>% 
  ggplot(aes(x = output, y = Freq)) + 
  geom_col()