我想要自定义行号,这样如果连续的
A
或 B
出现但没有 C
则相同的 ID 将重复,如下所示:
必填
X ID
1 A 1
2 B 2
3 A 3
4 A 3
5 B 4
6 B 4
7 B 4
8 C 5
9 C 5
10 B 6
尝试过
library(tidyverse)
df1 <-
data.frame(X = c("A", "B", "A", "A", "B", "B", "B", "C", "C", "B"))
df1 %>%
mutate(ID = row_number())
#> X ID
#> 1 A 1
#> 2 B 2
#> 3 A 3
#> 4 A 4
#> 5 B 5
#> 6 B 6
#> 7 B 7
#> 8 C 8
#> 9 C 9
#> 10 B 10
使用
rle
。
> transform(df1, foo=with(rle(X), rep(seq_along(values), lengths)))
X foo
1 A 1
2 B 2
3 A 3
4 A 3
5 B 4
6 B 4
7 B 4
8 C 5
9 C 5
10 B 6