R 中的直方图,只有 1 个 bin 为零

Histogram in R with 1 bin for zeros only

是否可以在 R 中使用不同大小的 bin 制作直方图?我正在处理计数数据,零需要有自己的分箱,但其他数字可以分箱到任何有意义的地方。所有鱼类数量的单个直方图就可以了。

fish<-structure(list(num = c(0, 11, 1, 0, 
                             13, 11, 0, 1, 0, 0, 11, 11, 0, 10, 1, 0, 0, 0, 0, 0, 0, 0, 
                             0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 9, 0, 2, 1, 0, 
                             7, 6, 0, 4, 8, 0, 8, 6, 0)), 
                class = "data.frame", row.names = c(NA,-50L))

使用cut让0单独存在,然后使用seq创建bins:

barplot(table(cut(fish$num, c(0, seq(1, 15, 3)), right = FALSE)), space = 0)


编辑: 第一个柱仅包含零,请参阅:

table(fish$num)
# 0  1  2  4  6  7  8  9 10 11 13 
#31  4  1  1  2  1  2  1  1  4  2 

table(cut(fish$num, c(0, seq(1, 15, 3)), right = FALSE))
#  [0,1)   [1,4)   [4,7)  [7,10) [10,13) 
#     31       5       3       4       5 

您可以使用 hist() 函数的 breaks 参数指定任何您想要的中断。您应该将其与 freq = TRUE 参数结合使用,否则您将得到一个密度图,并且零处的密度将是无限的。不过,该图看起来不太好,因为零 bin 没有宽度:

hist(fish$num, breaks = c(0, 0, 5, 10, 15, 20), freq=TRUE)

我不确定你想要做什么。