Преобразовать символьный формат даты в R Date - PullRequest
1 голос
/ 16 апреля 2020

У меня есть данные в символьном формате, например 'Feb-20'. Мне нужно преобразовать его в формат '2020-02-29' R Дата. Код должен быть обобщенным c для преобразования любого месяца и возврата в последний день месяца.

repmonth  <- 'Feb-20'

Ответы [ 3 ]

2 голосов
/ 16 апреля 2020

Мы можем использовать strptime:

   strptime('Feb-20',format="%b-%d", tz="UTC")

[1] "2020-02-20 UTC"

Или использовать lubridate, как @Neem Kamal предлагает:

lubridate::ymd(paste0("2020-","Feb-20"))

EDIT :

Чтобы вернуть последний день месяца:

lubridate::ceiling_date(strptime('Feb-20',format="%b-%d", tz="UTC"),"month") -1
[1] "2020-02-29 23:59:59 UTC"

Работает также и для марта:

lubridate::ceiling_date(strptime('Mar-20',format="%b-%d", tz="UTC"),"month") -1
[1] "2020-03-31 23:59:59 UTC"

Недостатки: также возвращает время.

0 голосов
/ 16 апреля 2020

Здесь вы go,

library(lubridate)
repmonth  <- 'Feb-20'
rollback(ymd(paste0("2020-",repmonth) ) + month(1), roll_to_first = F)

Вышесказанное даст вам именно то, что вы ищете. Последний день месяца независимо от того, високосный год или нет.

0 голосов
/ 16 апреля 2020

29 это исправлено? Вы можете использовать пакет lubridate:

lubridate::myd(paste0('Feb-20','-29'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...