У меня есть значения даты, содержащиеся в тексте, каждое из которых содержит половину года:
date_by_half <- c("2016 H1", "2017 H2", "2018 H1")
Я хотел бы извлечь дату из текста и сохранить как первый день каждой половины или «семестра». Итак, что-то вроде:
ysemester(date_by_half)
#[1] "2016-01-01" "2017-07-01" "2018-01-01"
Я знаком с функцией lubridate::yq()
, но обнаружил, что она работает только на четверти.
lubridate::yq(date_by_half)
#[1] "2016-01-01" "2017-04-01" "2018-01-01"
Сейчас моя работа заключается в том, чтобы заменить H2 на Q3:
lubridate::yq(stringr::str_replace(date_by_half,"H2", "Q3"))
#[1] "2016-01-01" "2017-07-01" "2018-01-01"
Однако мне интересно, есть ли более красноречивое решение, использующее lubridate
(или другой быстрый и многократно используемый метод).