While the base R solution using 'factor' appears to win based on elegance, chapeau to the creativity of the other suggestions. For those who are not aware, R 4.1.0 introduced two features: (1) native pipe |> and (2) new shorter syntax for anonymous functions. Erich's suggestion used the native pipe and Rui went with the spirit and added an anonymous function using the new syntax.
Everyone has their preferred coding style. I tend to prefer fewer lines of code (if there is no cost in understanding). I think the new anonymous function syntax helps in this regard and I see no reason to use piping if not necessary. So here is a modified, one-line version of Rui's last suggestion (sans the amazing observation about handling interactions). mutate(date_df, cycle=(\(ranks) match(dates, ranks))(sort(unique(dates)))) Eric On Thu, Jul 22, 2021 at 11:11 AM Uwe Ligges <lig...@statistik.tu-dortmund.de> wrote: > For a data.frame d, I'd simply do > > d$cycle <- factor(d$dates, labels=1:3) > > but I have not idea about tibbles. > > > Best, > Uwe Ligges > > > On 22.07.2021 05:12, N. F. Parsons wrote: > > Hi all, > > > > If I have a tibble as follows: > > > > tibble(dates = c(rep("2021-07-04", 2), rep("2021-07-25", 3), > > rep("2021-07-18", 4))) > > > > how in the world do I add a column that evaluates each of those dates and > > assigns it a categorical value such that > > > > dates cycle > > <chr> <chr> > > 2021-07-04 1 > > 2021-07-04 1 > > 2021-07-25 3 > > 2021-07-25 3 > > 2021-07-25 3 > > 2021-07-18 2 > > 2021-07-18 2 > > 2021-07-18 2 > > 2021-07-18 2 > > > > Not to further complicate matters, but some months I may only have one > > date, and some months I will have 4 dates - so thats not a fixed > quantity. > > We've literally been doing this by hand at my job and I'd like to > automate > > it. > > > > Thanks in advance! > > > > Nate Parsons > > > > [[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. > [[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.