我想在可能没有相同重复次数的列中重复值。
例如,我想创建一个名为"周"的列,其中"第 1 周"重复 10 次,然后"第 2 周"重复 20 次,然后"第 3 周"重复 30 次。
现在我正在使用这段代码,但它只允许我重复每个"周#"相同的次数。
df$Week <- rep(c("Week 1", "Week 2", "Week 3"), each = 10)
在此示例中,我让第 1 周重复 3 次,第 2 周重复5 次,第 3 周重复 7 次。 如何指定特定值重复的次数?
X Week
1 1.00 Week 1
2 2.00 Week 1
3 3.00 Week 1
4 4.00 Week 2
5 5.00 Week 2
6 6.00 Week 2
7 7.00 Week 2
8 8.00 Week 2
9 9.00 Week 3
10 10.0 Week 3
11 11.0 Week 3
12 12.0 Week 3
13 13.0 Week 3
14 14.0 Week 3
15 15.0 Week 3
如何指定特定值重复的次数?
times
论点。从?rep
:
times
一个整数值向量,如果长度为length(x)
,则给出重复每个元素的(非负(次数,如果长度为 1,则重复整个向量
> rep(c("Week 1", "Week 2", "Week 3"), times = c(10, 20, 30))
# repeats "Week 1" 10 times, "Week 2" 20 times, "Week 3" 30 times
试试这个解决方案:
周数的通用列表
weeks<-c("Week 1", "Week 2", "Week 3")
从字符串中提取重复次数
repetition<-as.numeric(unlist(strsplit(weeks," "))[seq(2,length(weeks)*2,by=2)])*10
重复字符串
Week<-rep(weeks,repetition)
Week
[1] "Week 1" "Week 1" "Week 1" "Week 1" "Week 1" "Week 1" "Week 1" "Week 1" "Week 1" "Week 1" "Week 2"
[12] "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 2"
[23] "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 2" "Week 3" "Week 3" "Week 3"
[34] "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3"
[45] "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3" "Week 3"
[56] "Week 3" "Week 3" "Week 3" "Week 3" "Week 3"
将信息添加到您的数据帧
df$Week<-Week