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

R data.table如何通过rbindlist搭配Map实现按值行扩展

当然可以通过rbindlist搭配Map实现该需求,具体实现方式如下:

第一步:加载依赖&构造示例数据

library(data.table)
x <- data.table(id=c('A1', 'B1'), start=c(1,1), stop=c(4,5))

第二步:核心实现代码

result <- rbindlist(Map(function(cur_id, cur_start, cur_stop) {
  # 生成当前行扩展后的所有start值
  new_start <- cur_start:(cur_stop - 1)
  # 构造当前行扩展后的子data.table
  data.table(id = cur_id, start = new_start, stop = new_start + 1)
}, x$id, x$start, x$stop))

逻辑说明

  • Map会逐行读取原表的id、start、stop取值,对每一行单独做扩展处理
  • 对每一行的起始值cur_start和终止值cur_stop,生成从cur_start到cur_stop-1的整数序列作为新的start列,每个新start加1就是对应的stop值
  • 最后用rbindlist把Map返回的所有子data.table按行合并,即可得到你需要的扩展结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:39:04