Как предложил @Tung, можно использовать case_wp dplyr:
df %>%
mutate(qtr = case_when(
.$amonth %in% 1:3) ~ 'a',
.$amonth %in% 4:6) ~ 'b',
.$amonth %in% 7:9) ~ 'c',
.$amonth %in% 10:12) ~ 'd',
TRUE ~ NA))
Несколько более читаемый подход - это комбинация.Метод трубопровода dplyr предназначен для улучшения читабельности, поэтому комбинация может быть сделана в виде:
seasons <- rep(c('a','b','c','d'), each=3)
df %>% mutate(qtr=seasons[amonth])
, который, возможно, перепрыгивает через ожог, чтобы получить воду, поскольку вторая строка эквивалентна df$qtr <- seasons[df$amonth]
.Но, в сочетании с другими операциями, одна или другая является более подходящей.