<分区> 分区>
我无法理解这一定很简单的任务。如何获取组标签为连续数字。
library(dplyr)
set.seed(1)
df <- data.frame(id = sample(c('a','b'), 20, T),
name = sample(c('N1', 'N2', 'N3'), 20, T),
val = runif(20)) %>%
group_by(id) %>%
arrange(id, name)
我想要的是一个标签 group_no
,它指示每个 id
dplyr 组中变量 name
的类别数。我在 dplyr 包本身找不到解决方案。像这样:
# A tibble: 20 x 4
# Groups: id [2]
id name val group_no
<fct> <fct> <dbl> <int>
1 a N1 0.647 1
2 a N1 0.530 1
3 a N1 0.245 1
4 a N2 0.693 2
5 a N2 0.478 2
6 a N2 0.861 2
7 a N3 0.821 3
8 a N3 0.0995 3
9 a N3 0.662 3
10 b N1 0.553 1
11 b N1 0.0233 1
12 b N1 0.519 1
13 b N2 0.783 2
14 b N2 0.789 2
15 b N2 0.477 2
16 b N2 0.438 2
17 b N2 0.407 2
18 b N3 0.732 3
19 b N3 0.0707 3
20 b N3 0.316 3
请注意,name
的值可以是任何值,当然通常不会像示例中那样以数字为后缀(否则我可以执行 sub("^N", "", df$name)
.
我正在寻找与 SO 帖子中的 1:n()
解决方案略有不同的东西,例如 here .