这里的数据是:
df <-
data.frame(group = c(1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4),
value = LETTERS[1:20])
我需要从每个组随机选择四个数值的顺序,以<代码>dplyr。 选定的数值应与数据相同,两者之间不应有差距。
期望的结果可能如下:
group value
1 1 A
2 1 B
3 1 C
4 1 D
6 2 F
7 2 G
8 2 H
9 2 I
11 3 K
12 3 L
13 3 M
14 3 N
17 4 Q
18 4 R
19 4 S
20 4 T
group value
1 1 A
2 1 B
3 1 C
4 1 D
5 2 E
6 2 F
7 2 G
8 2 H
10 3 J
11 3 K
12 3 L
13 3 M
17 4 Q
18 4 R
19 4 S
20 4 T
这是我解决的:
set.seed(23)
df %>%
group_by(group) %>%
mutate(selected = sample(0:1, size = n(), replace = TRUE)) %>%
filter(selected == 1)
然而,我无法说明如何在一行中产生4人,在他们之前或之后产生零。