Hello,

Here are 3 solutions, one of them the coercion to factor one.
Since you are using tibbles, I assume you also want a dplyr solution.


library(dplyr)

df1 <- tibble(dates = c(rep("2021-07-04", 2),
                        rep("2021-07-25", 3),
                        rep("2021-07-18", 4)))

# base R
as.integer(factor(df1$dates))
match(df1$dates, unique(sort(df1$dates)))

# dplyr
df1 %>% group_by(dates) %>% mutate(cycle = cur_group_id())


My favorite is by far the 1st but that's a matter of opinion.


Hope this helps,

Rui Barradas


Às 04:46 de 22/07/21, N. F. Parsons escreveu:
I am not averse to a factor-based solution, but I would still have to manually 
enter that factor each month, correct? If possible, I’d just like to point R at 
that column and have it do the work.

—
Nathan Parsons, B.SC, M.Sc, G.C.

Ph.D. Candidate, Dept. of Sociology, Portland State University
Adjunct Professor, Dept. of Sociology, Washington State University
Graduate Advocate, American Association of University Professors (OR)

Recent work (https://www.researchgate.net/profile/Nathan_Parsons3/publications)
Schedule an appointment (https://calendly.com/nate-parsons)

On Wednesday, Jul 21, 2021 at 8:30 PM, Tom Woolman <twool...@ontargettek.com 
(mailto:twool...@ontargettek.com)> wrote:

Couldn't you convert the date columns to character type data in a data
frame, and then convert those strings to factors in a 2nd step?

The only downside I think to treating dates as factor levels is that
you might have an awful lot of factors if you have a large enough
dataset.



Quoting "N. F. Parsons" <nathan.f.pars...@gmail.com>:

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.


______________________________________________
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.

Reply via email to