0

This is likely a duplicated question because what I am asking for is quite simple. I need to numerate a column of dates by a grouping variable, where it tells me what day the user is on within my data.

Here is a mock dataframe:-

UserID<-c("050c60043c", "050c60043c", "050c60043c", "050c60043c", "050c60043c", 
          "050c60043c", "050c60043c", "050c60043c", "050c60043c", "050c60043c", 
          "050c60043c", "050c60043c", "050c60043c", "050c60043c", "050c60043c", 
          "050c60043c", "050c60043c", "050c60043c", "050c60043c", "050c60043c", 
          "050c60043c", "050c60043c", "547a235451", "547a235451", "547a235451", 
          "547a235451", "547a235451", "547a235451", "547a235451", "547a235451", 
          "547a235451", "547a235451", "547a235451", "547a235451", "547a235451", 
          "547a235451")

Date<-structure(c(16480, 16480, 16480, 16482, 16482, 16482, 16483, 
                  16483, 16483, 16484, 16484, 16484, 16485, 16486, 16486, 16486, 
                  16488, 16488, 16488, 16489, 16490, 16490, 16481, 16482, 16483, 
                  16484, 16484, 16484, 16484, 16485, 16486, 16486, 16487, 16487, 
                  16487, 16488), class = "Date")

df<-data.frame(UserID,Date)

And here is what I am trying to replicate. I add a "Day" column in to the df :-

Day<-c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 5L, 6L, 6L, 
       6L, 7L, 7L, 7L, 8L, 9L, 9L, 1L, 2L, 3L, 4L, 4L, 4L, 4L, 5L, 6L, 
       6L, 7L, 7L, 7L, 8L)


df<-data.frame(UserID,Date,Day)

df



       UserID       Date Day
1  050c60043c 2015-02-14   1
2  050c60043c 2015-02-14   1
3  050c60043c 2015-02-14   1
4  050c60043c 2015-02-16   2
5  050c60043c 2015-02-16   2
6  050c60043c 2015-02-16   2
7  050c60043c 2015-02-17   3
8  050c60043c 2015-02-17   3
9  050c60043c 2015-02-17   3
10 050c60043c 2015-02-18   4
11 050c60043c 2015-02-18   4
12 050c60043c 2015-02-18   4
13 050c60043c 2015-02-19   5
14 050c60043c 2015-02-20   6
15 050c60043c 2015-02-20   6
16 050c60043c 2015-02-20   6
17 050c60043c 2015-02-22   7
18 050c60043c 2015-02-22   7
19 050c60043c 2015-02-22   7
20 050c60043c 2015-02-23   8
21 050c60043c 2015-02-24   9
22 050c60043c 2015-02-24   9
23 547a235451 2015-02-15   1
24 547a235451 2015-02-16   2
25 547a235451 2015-02-17   3
26 547a235451 2015-02-18   4
27 547a235451 2015-02-18   4
28 547a235451 2015-02-18   4
29 547a235451 2015-02-18   4
30 547a235451 2015-02-19   5
31 547a235451 2015-02-20   6
32 547a235451 2015-02-20   6
33 547a235451 2015-02-21   7
34 547a235451 2015-02-21   7
35 547a235451 2015-02-21   7
36 547a235451 2015-02-22   8

As you can see, each date is numerate, telling me which day it is for that respective UserID. Probably a very easy solution but any pointers would be great :)

metaltoaster
  • 380
  • 2
  • 15

0 Answers0