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

R语言中按时间区间为嵌套列表添加层级的方法咨询

R 三级嵌套时间序列列表的实现方案

核心思路

hop_index 本身支持对数据框做时间索引切片,无需直接传入嵌套列表。只需通过 purrr::map 遍历第一层按chamber_id拆分的子数据框,对每个子数据框单独按自定义时间区间切片,即可得到目标三级嵌套结构。

实现代码

首先确保已加载依赖包:

library(dplyr)
library(purrr)
library(slider)

核心处理代码:

nested_3level <- map(nested_data, function(chamber_df) {
  hop_index(
    .x = chamber_df,
    .i = chamber_df$date, # 索引为当前子数据框的时间列,和时间区间类型匹配
    .f = ~.x,
    .starts = flushing_times$end_flushing,
    .stops = flushing_times$start_flushing
  )
})

结构说明

输出的nested_3level完全符合需求的三级嵌套结构:

  • 第一层:列表名称为chamber_id(取值1-6)
  • 第二层:每个chamber下的子列表,顺序和flushing_times的行顺序一一对应,代表每个自定义时间区间
  • 第三层:每个时间区间内的观测数据框

可选优化

如果需要给第二层时间区间子集加名称方便调用,可补充如下代码:

# 时间区间子集命名格式为 [区间起始时间]_[区间结束时间]
nested_3level <- map(nested_3level, ~set_names(
  .x, 
  paste(flushing_times$end_flushing, flushing_times$start_flushing, sep = "_")
))

可通过如下代码验证结构正确性:

# 查看chamber 1的第一个时间区间的数据结构
str(nested_3level[["1"]][[1]])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:39:01