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 <ligges at
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 at 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 at 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]]