Inkrementelle IDs in einem R-Datenrahmen [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie wird die Datentabelle nach Gruppennummer von group_by nummeriert / beschriftet? 5 AntwortenIch habe den folgenden Datenrahmen:
> 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
Ich möchte jetzt, dass jede Zeile eine ID hat, die nur erhöht wird, wenn sich der Wert von A ändert. Das habe ich versucht:
> 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
Ich möchte jedoch Folgendes erhalten:
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