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

R语言中按id与date分组将长数据重塑为宽格式的问题求解

你之前代码的核心问题是生成组内序号时的分组维度错误:原代码仅按date字段分组,会导致不同id的同日期数据被归入同一组生成连续序号,和你需要的「同一个id+同一个日期组合下生成序号」的逻辑不符。

基础R修正方案

直接调整ave的分组字段即可:

# 按id+date双维度分组生成组内行号
dateno <- with(mydata_1, ave(value, id, date, FUN = seq_along))
test2 <- transform(mydata_1, dateno = dateno)
mydata_2 <- reshape(test2, dir = "wide", idvar = c("id","date"), timevar = "dateno")

运行后输出结果和你预期的mydata_2完全一致。

tidyverse 简洁方案

如果使用tidyverse生态工具,代码逻辑更直观:

library(dplyr)
library(tidyr)

mydata_2 <- mydata_1 %>%
  group_by(id, date) %>%
  mutate(seq = paste0("value.", row_number())) %>%
  pivot_wider(names_from = seq, values_from = value) %>%
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:54:01