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

基于ID反转时间列的R语言实现需求

按ID分组反转time列的解决方案

你需要按ID分组,对每组的time值进行反转,生成time_reverse列。以下是两种高效的实现方法:

可复现示例数据

df <- data.frame(
  id = rep(c(1, 2, 3, 4, 5), times = c(3, 1, 5, 2, 7)),
  time = c(1, 2, 3, 1, 1, 2,  3, 4, 5, 1, 2, 1, 2, 3, 4, 5, 6, 7), 
  time_reverse = sample(NA, size = 18, replace = TRUE)
)

方法1:使用dplyr(tidyverse生态)

dplyr的分组操作语法直观,适合大多数常规场景:

library(dplyr)

df <- df %>%
  group_by(id) %>%
  mutate(time_reverse = rev(time)) %>%
  ungroup()

方法2:使用data.table(大数据量更高效)

如果你的数据集规模较大,data.table的分组运算速度更优,能满足"快速创建"的需求:

library(data.table)

setDT(df)
df[, time_reverse := rev(time), by = id]

结果验证

处理后每组的time_reverse会对应ID的time列反转结果,比如:

  • ID=1的time序列(1,2,3)会被反转为(3,2,1)
  • ID=3的time序列(1,2,3,4,5)会被反转为(5,4,3,2,1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 07:57:14