Créer une colonne 'groupe en fonction d'une autre colonne
Bonjour,
je ne saurais même pas donner un nom approprié à ma manipulation donc dsl si il y a un doublon...
j'ai une colonne 'booléen' et j'aimerai créer une 2e colonne qui identifie un groupe jusqu'au changement d'état:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
c1 c2
0 1
0 1
0 1
1 2
1 2
0 3
0 3
0 3
0 3
1 4
1 4
1 4 |
Avec mon reflexe de codeur de type 'vba' je vais tourner en boucle sur la colonne et i=1 'while' c1 == 0 puis i=i+1 puis c2=i 'while' c1=1 etc...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
i <- 0
l <- 1
while (l<nrow(gpe_data)) {
i <- i+1
while (gpe_data[l,1] == 0) {
gpe_data[l,2] <- i
l <- l+1
}
i <- i+1
while (gpe_data[l,1] == 1) {
gpe_data[l,2] <- i
l <- l+1
}
} |
bon ben c'est bien ça marche mais j'ai a peu près 1 500 000 lignes, c'est donc très long a exécuter et surtout pas la meilleure approche en R. Auriez-vous une idée plus approprié?
Merci pour votre aide. (j’espère que c'est clair et lisible...)