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

data.table中如何将变量按n个连续整数灵活分组?

实现方案

直接使用ceiling()函数处理即可,逻辑简单高效,天然适配你提到的所有场景,仅需要修改n的值即可灵活调整每组的连续整数个数。

场景1:分组区间从整数1开始计算(和你给出的示例完全匹配)

library(data.table)
# 示例数据
DT <- data.table(var = 1:100)
# 设定每组包含的连续整数个数
n <- 2
# 新增group列
DT[, group := ceiling(var / n)]

效果验证:

  • n=1时,ceiling(var / 1)返回值和var完全一致,符合要求
  • n=2时,1、2返回分组1,3、4返回分组2,以此类推,匹配你的示例输出
  • n=3时,1、2、3返回分组1,4、5、6返回分组2,符合要求
  • var存在重复值时,相同var的计算结果完全一致,也匹配你给出的重复值场景示例

场景2:分组从var列的最小值开始计算(比如var最小值为5,n=2时5、6为第一组)

调整计算逻辑即可:

DT[, group := ceiling((var - min(var) + 1) / n)]

重复值场景测试

DT <- data.table(var = c(1,1,2,3,3,4))
n <- 2
DT[, group := ceiling(var / n)]
print(DT)
# 输出:
#    var group
# 1:   1     1
# 2:   1     1
# 3:   2     1
# 4:   3     2
# 5:   3     2
# 6:   4     2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:45:06