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

R语言基于索引列的无重叠滑动窗口聚合计算实现方法问询

方案1:手动分箱分组实现(逻辑清晰无歧义,推荐优先使用)

核心逻辑为以索引列最小值为起点,每10个索引单位划分一个无重叠区间,将每行数据匹配到对应区间后分组计算统计量,天然适配索引列不连续的场景:

library(dplyr)

# 定义窗口大小(索引单位数)
window_size <- 10

# 给每行分配所属窗口ID
df <- df %>%
  mutate(window_id = floor((V3 - min(V3)) / window_size))

# 按窗口分组统计,可自定义需要的统计指标
window_result <- df %>%
  group_by(window_id) %>%
  summarise(
    window_start = min(V3), # 窗口起始索引值
    window_end = min(V3) + window_size - 1, # 窗口结束索引值
    V1_mean = mean(V1), # 数值列平均值
    obs_count = n() # 窗口内观测数
  )
方案2:基于slider包实现

如果要沿用slider工具链,可通过设置步长参数实现无重叠滑动:

library(slider)

window_size <- 10

# 直接计算每个无重叠窗口的V1平均值
v1_window_mean <- slide_index_dbl(
  .x = df$V1,
  .i = df$V3,
  .f = mean,
  .before = 0,
  .after = window_size - 1,
  .step = window_size,
  .align = "left"
)

如果需要保留完整的窗口信息,可以搭配分组操作同步提取窗口起止索引值。

runner包也可以通过设置idx参数指定索引列,同时调整步长参数实现相同效果,逻辑和slider方案一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:15:01