Is this what you're after? > df <- data.frame( + Date = as.Date(c("2018-03-29", "2018-03-29", "2018-03-29", + "2018-03-30", "2018-03-30", "2018- ..." ... [TRUNCATED]
> df$count <- cumsum(c(TRUE, diff(df$Date) > 0)) > df Date count 1 2018-03-29 1 2 2018-03-29 1 3 2018-03-29 1 4 2018-03-30 2 5 2018-03-30 2 6 2018-03-30 2 7 2018-03-31 3 8 2018-03-31 3 9 2018-03-31 3 No extra libraries needed. Whenever you want a vector that counts something, cumsum of a logical vector is a good thing to try. On Sat, 21 Sep 2019 at 05:47, Phillip Heinrich <herd_...@cox.net> wrote: > > With the data snippet below I’m trying to increment the “count” vector by one > each time the date changes. > > Date count > 1 2018-03-29 1 > 2 2018-03-29 1 > 3 2018-03-29 1 > 81 2018-03-30 1 > 82 2018-03-30 1 > 83 2018-03-30 1 > 165 2018-03-31 1 > 166 2018-03-31 1 > 167 2018-03-31 1 > > > > > > > > I can get count to change when the date changes with the following code: > > test2 <- transform(test2, > + count = ifelse(Date == lag(Date,1),count,count+1)) > > test2 > Date count > 1 2018-03-29 NA > 2 2018-03-29 1 > 3 2018-03-29 1 > 81 2018-03-30 2 > 82 2018-03-30 1 > 83 2018-03-30 1 > 165 2018-03-31 2 > 166 2018-03-31 1 > 167 2018-03-31 1 > > > > > > > > ...but I want all three March 30 rows to have a count of 2 and the March 31 > rows to be equal to 3. Any suggestions? > > Thanks. > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.