You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中依据阈值区间为数据框添加分桶列

基于阈值区间为数据框添加分桶列

我有如下阈值区间网格grd:

> grd
   count  treshold
1   1      0.01
2   2      0.02
3   3      0.05
4   4      0.10
5   5      0.20

以及数据框df:

> df
    param   name
1   0.124   Tim
2   0.011   John
3   0.002   Alex
4   0.023   Jessica
5   0.056   Rose

需要用grd$treshold为df新增一列bucket,标识df$param中数值所属的区间:

  • 0.124大于0.10,对应分桶编号5
  • 0.011介于0.01和0.02之间,对应分桶编号2
  • 以此类推,最终预期结果如下:
> df
        param   name      bucket
    1   0.124   Tim         5
    2   0.011   John        2
    3   0.002   Alex        1
    4   0.023   Jessica     3
    5   0.056   Rose        4

解决方案

使用R内置的findInterval()函数即可快速实现需求,该函数会返回每个数值在阈值序列中的位置索引,恰好对应grd$count的分桶编号:

# 为df添加分桶列
df$bucket <- findInterval(df$param, grd$treshold, rightmost.closed = TRUE)

# 查看结果
df

运行上述代码后,就能得到符合预期的分桶结果。

内容的提问来源于stack exchange,提问作者fredi96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:33:01