如何根据 R 中的直方图桶对数据进行分类?

Posted

技术标签:

【中文标题】如何根据 R 中的直方图桶对数据进行分类?【英文标题】:How can I categorize my data based on histogram buckets in R? 【发布时间】:2022-01-18 22:52:24 【问题描述】:

我有一个从 my.data 内的 obsoleteness 列生成的直方图

his.obsoleteness <- (ggplot(my.data, aes(x=obsoleteness)) 
  + geom_histogram(bins = 15,fill = "white", color="Red" )
  + stat_bin(aes(y=..count.., label=..count..), geom="text",bins = 15))  

我想向my.data 添加一个新列,表示“桶号”。例如,如果第一个(最小桶)中的一行,该列的值应为 1,如果它在第二个桶中,则该值应为 2,依此类推。除了手动为每个桶间隔分配值之外,还有其他简单的方法吗?

【问题讨论】:

您可以发布您的数据吗? 我应该如何发布它?它只是一列数值? 尝试使用dput(yourdata) 或使用dput(head(your data, n) 创建n 值的子集,您是说bin 而不是“bucket”吗? 我想你在找 ?cut 【参考方案1】:

由于 bins 按等宽分组数据,您可以尝试:

# sample data
my.data <- data.frame(obsoleteness = sample(1:10000, 1000, replace = T))

bins <- 15

my.data$bin <- findInterval(my.data$obsoleteness,
                            quantile(my.data$obsoleteness, 
                                     probs = seq(0, 1, by = 1/bins)))

# > head(my.data,10)
#   obsoleteness bin
#1          4101   7
#2          1702   3
#3          6354  10
#4          7710  12
#5          3575   6
#6          2686   5
#7          6598  10
#8          6983  11
#9          9414  15
#10         9431  15

【讨论】:

以上是关于如何根据 R 中的直方图桶对数据进行分类?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Shiny 中的下拉框中根据变量选择动态创建直方图

R ggplot 直方图。如何根据另一个变量更改条形的颜色?

如何根据 bin 的 x 值将颜色图应用于绘图直方图?

R语言ggplot2可视化:可视化人口金字塔图直方图(堆叠直方图连续变量堆叠直方图离散变量堆叠直方图)密度图箱图(添加抖动数据点tufte箱图多分类变量分组箱图)小提琴图

r语言如何将直方图x轴的组距

【R语言】--- 直方图