Вот решение tidyverse
, вы не предоставили никаких данных, поэтому я сделал все, чтобы набрать текст. Последняя строка TRUE ~ 999
очень полезна для проверки работоспособности.
library(dplyr)
dte <- sample(0:100, size = 1000, replace = TRUE)
mpa <- data.frame(dte)
mpa %>% mutate(
Expiryweeknumber = case_when(
dte >= 0 & dte <= 7 ~ 1,
dte >= 8 & dte <= 14 ~ 2,
dte >= 15 & dte <= 21 ~ 3,
#### you can add the rest
TRUE ~ 999
)
) %>%
head(15)
#> dte Expiryweeknumber
#> 1 92 999
#> 2 100 999
#> 3 60 999
#> 4 46 999
#> 5 57 999
#> 6 85 999
#> 7 21 3
#> 8 48 999
#> 9 51 999
#> 10 5 1
#> 11 21 3
#> 12 24 999
#> 13 34 999
#> 14 89 999
#> 15 92 999