如何在R中创建具有重复次数或固定次数重复行的数据帧?

有时,在数据帧中需要重复的行,主要是用于扩展数据大小而不是收集原始数据。这样可以节省我们的时间,但是肯定会有一些偏见,不建议这样做。即使不建议这样做,但有时也有必要,例如,如果不可能收集原始数据,那么我们可以做到。如果这样做,则必须在分析报告中进行指定。在R中,我们可以将rep函数与seq_len和nrows一起使用,以创建具有重复行的数据帧。

示例

考虑下面的数据帧df-

> x<-1:10
> y<-letters[1:10]
> df<-data.frame(x,y)

创建一个新的数据框,其中在原始行之后再打印一行-

> df[rep(seq_len(nrow(df)), times = 2), ]
      x y
1     1 a
2     2 b
3     3 c
4     4 d
5     5 e
6     6 f
7     7 g
8     8 h
9     9 i
10   10 j
1.1   1 a
2.1   2 b
3.1   3 c
4.1   4 d
5.1   5 e
6.1   6 f
7.1   7 g
8.1   8 h
9. 1  9 i
10.1 10 j

创建一个新的数据框,其中重复的行一张一张地打印-

> df[rep(seq_len(nrow(df)), each = 2), ]
      x y
1     1 a
1.1   1 a
2     2 b
2.1   2 b
3     3 c
3.1   3 c
4     4 d
4.1   4 d
5     5 e
5.1   5 e
6     6 f
6.1   6 f
7     7 g
7.1   7 g
8     8 h
8.1   8 h
9     9 i
9.1   9 i
10   10 j
10.1 10 j

通过数字序列重复每一行-

> df[rep(seq_len(nrow(df)), times = 1:10), ]
      x y
1     1 a
2     2 b
2.1   2 b
3 3     c
3.1   3 c
3.2   3 c
4 4     d
4.1   4 d
4.2   4 d
4.3   4 d
5 5     e
5.1   5 e
5.2   5 e
5.3   5 e
5.4   5 e
6     6 f
6.1   6 f
6.2   6 f
6.3   6 f
6.4   6 f
6.5   6 f
7     7 g
7.1   7 g
7.2   7 g
7.3   7 g
7.4   7 g
7.5   7 g
7.6   7 g
8     8 h
8.1   8 h
8.2   8 h
8.3   8 h
8.4   8 h
8.5   8 h
8.6   8 h
8.7   8 h
9     9 i
9.1   9 i
9.2   9 i
9.3   9 i
9.4   9 i
9.5   9 i
9.6   9 i
9.7   9 i
9.8   9 i
10   10 j
10.1 10 j
10.2 10 j
10.3 10 j
10.4 10 j
10.5 10 j
10.6 10 j
10.7 10 j
10.8 10 j
10.9 10 j