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

如何按时间步分组平均组内值?实现多Metric统一时间戳

R语言:按固定时间区间聚合Metric数据并生成统一时间戳数据框

原始数据框:

df <- data.frame(Metric = c("Stat1", "Stat1", "Stat1", "Stat1",
                            "Stat2", "Stat2", "Stat2",
                            "Stat3", "Stat3", "Stat3", "Stat3"),
                 Timestamp = c("0.000514", "0.060709", "0.091062", "0.134333",
                               "0.000382", "0.060018", "0.133970",
                               "0.007462", "0.078792", "0.115623", "0.148771"),
                 Value = c("10", "20", "25", "30",
                           "11", "21", "31",
                           "12", "22", "32", "37"))

需求说明:

  • 为所有Metric统一时间戳(如0.00、0.05、0.10)
  • 按固定时间区间([0,0.05)、[0.05,0.10)、[0.10,0.15)...)对每个Metric的Value取平均值
  • 最终生成每个Metric对应所有统一时间戳的聚合后数据

解决方案(使用dplyr包)

# 加载dplyr包
library(dplyr)

# 处理数据
df_new <- df %>%
  # 1. 把字符型的Timestamp和Value转为数值型
  mutate(
    Timestamp = as.numeric(Timestamp),
    Value = as.numeric(Value)
  ) %>%
  # 2. 计算每个时间点所属区间的左端点(即目标统一时间戳)
  mutate(Interval = floor(Timestamp / 0.05) * 0.05) %>%
  # 3. 按Metric和区间分组,计算Value的平均值
  group_by(Metric, Interval) %>%
  summarize(Avg_Value = mean(Value), .groups = "drop") %>%
  # 4. 把Interval格式化为两位小数的字符串,匹配目标格式
  mutate(
    Timestamp = sprintf("%.2f", Interval),
    Value = as.character(Avg_Value)
  ) %>%
  # 5. 选择并排序所需列
  select(Metric, Timestamp, Value) %>%
  arrange(Metric, Timestamp)

验证结果

运行上述代码后,df_new的结构和数值将与目标数据框一致:

# 输出结果
df_new
#>    Metric Timestamp Value
#> 1  Stat1      0.00    10
#> 2  Stat1      0.05  22.5
#> 3  Stat1      0.10    30
#> 4  Stat2      0.00    11
#> 5  Stat2      0.05    21
#> 6  Stat2      0.10    31
#> 7  Stat3      0.00    12
#> 8  Stat3      0.05    22
#> 9  Stat3      0.10  34.5

关键步骤说明

  • 类型转换:原始数据的Timestamp和Value是字符型,必须转为数值型才能进行计算
  • 区间计算:通过floor(Timestamp / 0.05) * 0.05将每个时间点映射到对应区间的左端点,实现统一时间戳的分组
  • 聚合计算:分组后用mean(Value)得到区间内的平均值
  • 格式调整:用sprintf将时间戳格式化为两位小数的字符串,匹配目标数据框的格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:30:58