0

I have a simple dataframe containing only numbers

Name = c("A", "B", "C", "D", "E")
Days = c(3,4,5,16,26)
df= data.frame(Name, Days)

I want to create a new column that groups them into their separate label. The logic should go like this:

if Days lesser than 7, "1 Week"

if Days between 7 and 14 , "1-2 Weeks"

if Days between 14 and 30 , "1 Month"

realbeast91
  • 176
  • 9

1 Answers1

2

Does this work:

library(dplyr)
df %>% mutate(wk = case_when(Days < 7 ~ '1 week', between(Days, 7, 14) ~ '1-2 weeks', TRUE ~ '1 month'))
  Name Days      wk
1    A    3  1 week
2    B    4  1 week
3    C    5  1 week
4    D   16 1 month
5    E   26 1 month
Karthik S
  • 11,348
  • 2
  • 11
  • 25