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

如何按年份拆分DataFrame并将子数据集命名为MR_2022等格式?

R语言按年份拆分DataFrame并命名为MR_YYYY格式

直接按下面的步骤操作就能把数据按年份拆分,并且自动命名成MR_2022、MR_2021这类格式:

方法一:基础R实现(无需额外包)

# 示例数据
df = structure(list(id = c(1, 1, 1, 1, 2, 2, 2, 2, 35555, 35555, 35555
), year = c(2022, 2022, 2021, 2021, 2020, 2020, 2019, 2019, 2018, 
2022, 2022)), class = "data.frame", row.names = c(NA, -11L))

# 1. 按年份拆分数据,得到按年份命名的列表
split_list <- split(df, df$year)

# 2. 把列表元素的名称改成MR_YYYY格式
names(split_list) <- paste0("MR_", names(split_list))

# 3. 将每个子DataFrame导出到全局环境,直接就能调用
list2env(split_list, envir = .GlobalEnv)

执行完之后,在控制台输入MR_2022就能看到2022年的所有数据,其他年份同理。

方法二:dplyr实现(适合tidyverse用户)

如果你平时常用dplyr,也可以这么写:

library(dplyr)

# 示例数据(和上面一致)
df = structure(list(id = c(1, 1, 1, 1, 2, 2, 2, 2, 35555, 35555, 35555
), year = c(2022, 2022, 2021, 2021, 2020, 2020, 2019, 2019, 2018, 
2022, 2022)), class = "data.frame", row.names = c(NA, -11L))

# 1. 按年份分组拆分
split_list <- df %>% 
  group_by(year) %>% 
  group_split(.keep = TRUE)

# 2. 提取所有唯一年份,给列表元素命名
year_values <- unique(df$year)
names(split_list) <- paste0("MR_", year_values)

# 3. 导出到全局环境
list2env(split_list, envir = .GlobalEnv)

关键步骤说明

  • split()/group_split():核心是把原数据按year列的不同值拆分成多个子DataFrame,存到列表里。
  • paste0("MR_", ...):给每个子DataFrame的名称加上前缀,符合MR_YYYY的命名格式。
  • list2env():把列表里的每个子DataFrame变成全局环境里的独立对象,不用再从列表里提取,直接调用名称即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:55:20