R语言中如何实现列值按不同次数重复填充?
解决R数据框中列元素按不同次数重复的问题
嘿,这个需求其实用rep()函数就能轻松搞定!你之前用的each参数是让每个元素重复相同次数,而我们需要为每个元素指定独立的重复次数,这时候换用times参数就完美适配啦!
具体实现步骤
假设你需要:
- "Week 1" 重复3次
- "Week 2" 重复5次
- "Week 3" 重复30次
可以这样写代码:
# 1. 定义要重复的周标签和对应的重复次数 week_names <- c("Week 1", "Week 2", "Week 3") repeat_times <- c(3, 5, 30) # 2. 创建数据框(这里以添加一个随机数值列为例,你可以替换成自己的业务列) total_rows <- sum(repeat_times) df <- data.frame( Metric = rnorm(total_rows) ) # 3. 按指定次数填充Week列 df$Week <- rep(week_names, times = repeat_times)
验证结果
你可以用table()函数检查每个周标签的重复次数是否符合预期:
table(df$Week)
输出应该是:
Week 1 Week 2 Week 3 3 5 30
关键参数区别说明
each = n:让每个元素都重复n次,比如rep(c("A","B"), each=2)会得到c("A","A","B","B")times = c(n1, n2):让第一个元素重复n1次,第二个元素重复n2次,比如rep(c("A","B"), times=c(2,3))会得到c("A","A","B","B","B")
这个方法灵活性拉满,不管你需要的重复次数是多少,只要把次数按顺序放到times对应的向量里就可以了!
内容的提问来源于stack exchange,提问作者PeterPer
相关产品推荐
相关产品推荐

