0

I have trouble counting sequentially the value of a variable.

My data look like this

   IDPERS    value year divorce
1  371102  married    1       0
2  371102 divorced    2       1
3  371102 divorced    3       1
4  371102       NA    4       0
5  371102 divorced    5       1
6  371102 divorced    6       1
7  371102       NA    7       0
8  371102       NA    8       0
9  371102 divorced    9       1
10 371102 divorced   10       1
11 371102 divorced   11       1

What I want, is to count the divorce such as

   IDPERS    value year divorce divorceEp
1  371102  married    1       0         0
2  371102 divorced    2       1         1
3  371102 divorced    3       1         2
4  371102       NA    4       0         2
5  371102 divorced    5       1         3
6  371102 divorced    6       1         4
7  371102       NA    7       0         4
8  371102       NA    8       0         4
9  371102 divorced    9       1         5
10 371102 divorced   10       1         6
11 371102 divorced   11       1         7

Any clue how I could to count properly this sequence of episodes ?

library(dplyr)
dta %>% mutate(1:sum(divorce)) 

Thanks

dta = structure(list(IDPERS = c(371102, 371102, 371102, 371102, 371102, 
371102, 371102, 371102, 371102, 371102, 371102), value = c("married", 
"divorced", "divorced", "NA", "divorced", "divorced", "NA", "NA", 
"divorced", "divorced", "divorced"), year = 1:11, divorce = c(0, 
1, 1, 0, 1, 1, 0, 0, 1, 1, 1), divorceEp = c(0, 1, 2, 2, 3, 4, 
4, 4, 5, 6, 7)), class = "data.frame", .Names = c("IDPERS", "value", 
"year", "divorce", "divorceEp"), row.names = c(NA, -11L))
giac
  • 4,261
  • 5
  • 30
  • 59

1 Answers1

2

You can use cumsum():

mutate(dta,divorceEp=cumsum(divorce))
   IDPERS    value year divorce divorceEp
1  371102  married    1       0         0
2  371102 divorced    2       1         1
3  371102 divorced    3       1         2
4  371102       NA    4       0         2
5  371102 divorced    5       1         3
6  371102 divorced    6       1         4
7  371102       NA    7       0         4
8  371102       NA    8       0         4
9  371102 divorced    9       1         5
10 371102 divorced   10       1         6
11 371102 divorced   11       1         7
scoa
  • 19,359
  • 5
  • 65
  • 80