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

如何在R中将按月分组的嵌套列表调整为按对应年份分组

R嵌套列表结构转换实现

需求说明

现有嵌套列表的一级分组为月份名称,二级分组为月-年格式的字符串,对应每个时间段的观测数据。需要调整结构为一级分组为年份,二级分组保留原月-年格式,对应数据不变。

实现代码

基础R实现(无需加载第三方包)

# 打平嵌套列表,保留所有二级数据框和原二级索引名
flat_list <- unlist(sample, recursive = FALSE)
# 提取每个数据框对应的年份作为一级分组键
year_keys <- substr(names(flat_list), 4, 7)
# 按年份重新分组为嵌套列表
output <- split(flat_list, year_keys)
# 修正二级索引名,去除多余的月份前缀
output <- lapply(output, function(x) {
  names(x) <- substr(names(x), 5, nchar(names(x)))
  return(x)
})

purrr实现(tidyverse生态,代码更简洁)

library(purrr)

output <- sample %>%
  list_flatten() %>%
  split(~ substr(.y, 4, 7)) %>%
  map(~ set_names(.x, substr(names(.x), 5, nchar(names(.x)))))

结果验证

运行代码后执行str(output)即可查看结构,和你给出的预期输出结构完全匹配。

内容的提问来源于stack exchange,提问作者Hüsamettin Tayşi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 22:57:01