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

R语言拆分向量为重叠子向量并追加首尾元素组成的最后分块

R向量拆分需求实现方案

修改后完整代码

ts = 1:10
l = 7
ov = l -1

library(tidyverse)
anil <- function(ts, l, ov){
  # 计算符合前两个条件的基础分块
  base_blocks <- seq_len((length(ts) - ov) %/% (l - ov) +1) %>%
    as.data.frame() %>%
    setNames('id') %>%
    mutate(start = accumulate(id, ~ .x + l - ov),
           end = pmin(start + l - 1, length(ts)),
           start = pmin(start, end - l + 1)) %>%
    filter(!duplicated(paste(start, end, sep = '-'))) %>%
    transmute(desired = map2(start, end, ~ ts[.x:.y])) %>%
    pull(desired)
  
  # 追加首尾元素组成的最后一个分块
  full_blocks <- c(base_blocks, list(c(ts[1], tail(ts, 1))))
  
  # 保持原返回结构不变
  return(list(desired = full_blocks))
}

anil(ts, l, ov)

修改说明

  1. 保留原代码中满足「子向量长度固定为l」、「相邻子向量重叠长度固定为ov」的核心逻辑,仅调整最后输出部分
  2. 提取基础分块列表后,额外生成由父向量首元素和尾元素组成的分块,追加到分块列表的末尾
  3. 返回结构和原代码完全一致,不影响原有调用逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:18:01