Hello,
Great function!
Here is a simplified, (hopefully) more general version.
seq_from_group <- function(x){
x |>
unique() |>
sort() |> (\(ranks) match(x, ranks))()
}
date_df |>
mutate(cycle = seq_from_group(dates))
With ?interaction it works with more than one column.
df2 <- data.frame(
X = c(rep("a", 4), rep("b", 5)),
Y = c(rep(1, 2), rep(3,3), rep(2, 4))
)
df2 |>
mutate(cnt = seq_from_group(interaction(X, Y)))
Hope this helps,
Rui Barradas
Às 07:54 de 22/07/21, Erich Subscriptions escreveu:
date_df <- tibble(dates = c(rep("2021-07-04", 2), rep("2021-07-25", 3),
rep("2021-07-18", 4)))
cycle_from_date <- function(date,dates){
dates |>
unique() |>
sort() ->
ranks
match(date,ranks)
}
date_df |>
mutate(cycle_new=cycle_from_date(dates,dates))
On 22.07.2021, at 05:46, N. F. Parsons <nathan.f.pars...@gmail.com> wrote:
tibble(dates = c(rep("2021-07-04", 2), rep("2021-07-25", 3),
rep("2021-07-18", 4)))
______________________________________________
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.