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

含多组(x,y)对的R数据框/data.table转换为指定长格式的高效实现

data.table 实现方案

此方案为原生向量化操作,处理4万行级数据仅需毫秒级耗时,远快于手动循环实现,且支持自动适配3-5组坐标对、多常量列的场景。

示例代码

# 加载依赖包
library(data.table)

# 构造演示数据,实际可直接用fread读取或把现有数据框转成data.table格式
dt <- data.table(
  x_1 = 1:5, y_1 = 6:10, 
  x_2 = 11:15, y_2 = 16:20, 
  x_3 = 21:25, y_3=26:30, 
  alpha = seq(0.2,1,0.2)
)

# 核心转换逻辑
res_dt <- melt(
  dt,
  # 按列名正则匹配分组,x开头的列归为x组,y开头的列归为y组
  measure.vars = measure(value.name = c("x", "y"), pattern = c("^x_", "^y_")),
  # 坐标对序号输出到index列
  variable.name = "index"
)

# 可选:调整列顺序和要求的输出格式完全对齐
setcolorder(res_dt, c("x", "y", "alpha", "index"))

特性说明

  • 无需手动指定坐标列数量,3-5组坐标对自动适配,新增x_4、y_4等列无需修改代码
  • 所有非坐标列(如alpha、其他同类常量列)会自动保留,按原行对应重复到每一条坐标记录
  • 输出index列的值和原坐标对后缀完全对应,无需额外计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:30:02