向下重复值数不相等的列

  • 本文关键字:不相等 r
  • 更新时间 :
  • 英文 :


我想在可能没有相同重复次数的列中重复值。

例如,我想创建一个名为"周"的列,其中"第 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

最新更新