如何在R中多次将有序数据帧拆分为前半部分和后半部分

如何在R中多次将有序数据帧拆分为前半部分和后半部分,r,R,我想根据一列的顺序将我的数据框分成多个部分,这样我就可以有一个包含“前半部分”和“后半部分”的列。例如,我希望数据如下所示: 1 - first half 2 - first half 3 - second half 4 - second half 2 - first half 3 - first half 4 - second half 5 - second half 下面是重现数据基本结构的代码 order <- data.frame(test = c(1:10, 4:13, 6:1

我想根据一列的顺序将我的数据框分成多个部分,这样我就可以有一个包含“前半部分”和“后半部分”的列。例如,我希望数据如下所示:

1 - first half
2 - first half
3 - second half
4 - second half
2 - first half
3 - first half
4 - second half
5 - second half
下面是重现数据基本结构的代码

order <- data.frame(test = c(1:10, 4:13, 6:15))

order这里有一种方法-

order$group <- rep(1:nrow(order), each = 5, length.out = nrow(order))

first_half <- order[order$group %% 2 == 1, ]
second_half <- order[order$group %% 2 == 0, ]

您也可以使用
split(order,f=order$group%%2==1)
来生成每一半的数据帧列表。

感谢您的回复!如果群体不均衡,有没有办法做到这一点?对不起,我在做我的简单示例时没有想到这一点。@Lisa模式/规则可以编码。如果没有模式/规则,那么就没有代码。不均匀性有规律吗?我知道每组有多少,但没有规律。也许将其拆分、使用此代码并将其重新组合起来会更容易。谢谢大家!@Lisa你只是想把数据集随机分成两半吗?不,这是有顺序的。有测量时间帧(每帧为10毫秒),这些帧被分为几个类别(之前、期间、之后)。我需要前半部分和后半部分。
order$group <- rep(1:nrow(order), each = 5, length.out = nrow(order))

first_half <- order[order$group %% 2 == 1, ]
second_half <- order[order$group %% 2 == 0, ]
first_half
   test    halves group
1     1 firstHalf     1
2     2 firstHalf     1
3     3 firstHalf     1
4     4 firstHalf     1
5     5 firstHalf     1
11    4 firstHalf     3
12    5 firstHalf     3
13    6 firstHalf     3
14    7 firstHalf     3
15    8 firstHalf     3
21    6 firstHalf     5
22    7 firstHalf     5
23    8 firstHalf     5
24    9 firstHalf     5
25   10 firstHalf     5

second_half
   test     halves group
6     6 secondHalf     2
7     7 secondHalf     2
8     8 secondHalf     2
9     9 secondHalf     2
10   10 secondHalf     2
16    9 secondHalf     4
17   10 secondHalf     4
18   11 secondHalf     4
19   12 secondHalf     4
20   13 secondHalf     4
26   11 secondHalf     6
27   12 secondHalf     6
28   13 secondHalf     6
29   14 secondHalf     6
30   15 secondHalf     6