I have the following data frame:
> test = data.frame(A = sample(1:5, 10, replace = T)) %>% arrange(A)
> test
A
1 1
2 1
3 1
4 2
5 2
6 2
7 2
8 4
9 4
10 5
I now want every row to have an ID that is only incremented when the value of A changes. This is what I have tried:
> test = test %>% mutate(id = as.numeric(rownames(test))) %>% group_by(A) %>% mutate(id = min(id))
> test
A id
(int) (dbl)
1 1 1
2 1 1
3 1 1
4 2 4
5 2 4
6 2 4
7 2 4
8 4 8
9 4 8
10 5 10
However, I would like to get the following:
A id
(int) (dbl)
1 1 1
2 1 1
3 1 1
4 2 2
5 2 2
6 2 2
7 2 2
8 4 3
9 4 3
10 5 4