Вы можете использовать format
, обтекание toupper
для верхнего регистра и trimws
для обрезки пробела, созданного %e
.Я использовал %e
в format
, потому что это День месяца в виде десятичного числа (1–31) с пробелом в начале для однозначного числа. Итак, мы просто удаляем пробелвпоследствии.
trimws(toupper(format(begin, "%e-%b-%y")))
# [1] "1-JAN-17" "1-FEB-17" "1-MAR-17" "1-APR-17" "1-MAY-17" "1-JUN-17"
# [7] "1-JUL-17" "1-AUG-17" "1-SEP-17" "1-OCT-17" "1-NOV-17" "1-DEC-17"
# [13] "1-JAN-18" "1-FEB-18" "1-MAR-18" "1-APR-18" "1-MAY-18" "1-JUN-18"
# [19] "1-JUL-18" "1-AUG-18" "1-SEP-18" "1-OCT-18"
Для вектора last
вы можете опустить trimws
, поскольку %e
не будет генерировать пробелы для двузначных чисел.
toupper(format(last, "%e-%b-%y"))
# [1] "31-JAN-17" "28-FEB-17" "31-MAR-17" "30-APR-17" "31-MAY-17"
# [6] "30-JUN-17" "31-JUL-17" "31-AUG-17" "30-SEP-17" "31-OCT-17"
# [11] "30-NOV-17" "31-DEC-17" "31-JAN-18" "28-FEB-18" "31-MAR-18"
# [16] "30-APR-18" "31-MAY-18" "30-JUN-18" "31-JUL-18" "31-AUG-18"
# [21] "30-SEP-18" "31-OCT-18" "30-NOV-18"