Зависит от того, сколько лет ваш набор данных. Решение на два года с использованием match
со встроенным month.name
(зависит от региона) и ISOdate
:
m <- match(dat$Month, month.name)
dat <- transform(dat, Month=strftime(ISOdate(2018+((m - m[1]) < 0), m, 1), "%Y-%m"))
dat
# Month Season Boys Girls
# 1 2018-09 Autumn 30132 28608
# 2 2018-10 Autumn 29985 28605
# 3 2018-11 Autumn 28701 27400
# 4 2018-12 Winter 28079 26634
# 5 2019-01 Winter 28758 27415
# 6 2019-02 Winter 24745 24047
# 7 2019-03 Spring 27848 26027
# 8 2019-04 Spring 27097 25542
# 9 2019-05 Spring 29190 27409
# 10 2019-06 Summer 28266 26702
Данные
dat <- read.table(text="Month Season Boys Girls
September Autumn 30132 28608
October Autumn 29985 28605
November Autumn 28701 27400
December Winter 28079 26634
January Winter 28758 27415
February Winter 24745 24047
March Spring 27848 26027
April Spring 27097 25542
May Spring 29190 27409
June Summer 28266 26702", header=TRUE)