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

如何将R语言年度数据集转换为月度重复数据集?

解决方法:将年度数据扩展为月度重复行

给你两种不用循环的简便实现方式,适合R语言新手:

方法一:基础R原生实现

直接利用行索引重复的方式,一行代码就能生成目标数据框:

# 基于原df生成扩展后的df2
df2 <- df[rep(seq_len(nrow(df)), each = 12), ]
# 重置行号(可选,让行号从1开始连续)
rownames(df2) <- NULL

运行后print(df2)会得到:

year xxx yyy
1  2016   1   4
2  2016   1   4
...
35 2018   3   6
36 2018   3   6

原理:seq_len(nrow(df))生成原数据框的行号(1、2、3),rep(..., each=12)让每个行号重复12次,最后用这个重复后的索引提取原数据框的行,就自动完成了所有列的对应重复。

方法二:tidyverse工具包实现

如果你正在学习tidyverse生态,用dplyr的uncount()函数更直观:

# 先加载dplyr(如果没安装先运行install.packages("dplyr"))
library(dplyr)
# 生成扩展数据框
df2 <- df %>% uncount(12)

uncount()的参数直接指定每行需要重复的次数,代码更简洁易读,生成的结果和基础R方法完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:56:04