lubridate: how to parse month-year?

ℕʘʘḆḽḘ picture ℕʘʘḆḽḘ · Dec 13, 2016 · Viewed 28.2k times · Source

I have a column of dates as follows,

> mymonth = c('10/2015','11/2016','12/2016')
> data <- data_frame(mymonth)
> data
# A tibble: 3 × 1
  mymonth
    <chr>
1 10/2015
2 11/2016
3 12/2016

Here, obviously, my month corresponds to a particular month in the year. October 2015, November 2015 and December 2015.

I cannot parse these dates correctly with lubridate. It is assumed the month correspond to the last business day of the month.

How can I have this variable translated into a date variable that lubridate understands?

Thanks~

Answer

joel.wilson picture joel.wilson · Dec 13, 2016
library(zoo)
as.yearmon(mymonth, "%m/%Y")
[1] "Oct 2015" "Nov 2016" "Dec 2016"

as.Date(as.yearmon(mymonth, "%m/%Y"))
[1] "2015-10-01" "2016-11-01" "2016-12-01"

or another workaround,

as.Date(paste0("01/", mymonth),format = "%d/%m/%Y")
[1] "2015-10-01" "2016-11-01" "2016-12-01"