Converting year and month (“yyyy-mm” format) to a date?

后端 未结 7 959
自闭症患者
自闭症患者 2020-11-21 04:55

I have a dataset that looks like this:

Month    count
2009-01  12
2009-02  310
2009-03  2379
2009-04  234
2009-05  14
2009-08  1
2009-09  34
2009-10  2386
         


        
7条回答
  •  野的像风
    2020-11-21 05:31

    You could also achieve this with the parse_date_time or fast_strptime functions from the lubridate-package:

    > parse_date_time(dates1, "ym")
    [1] "2009-01-01 UTC" "2009-02-01 UTC" "2009-03-01 UTC"
    
    > fast_strptime(dates1, "%Y-%m")
    [1] "2009-01-01 UTC" "2009-02-01 UTC" "2009-03-01 UTC"
    

    The difference between those two is that parse_date_time allows for lubridate-style format specification, while fast_strptime requires the same format specification as strptime.

    For specifying the timezone, you can use the tz-parameter:

    > parse_date_time(dates1, "ym", tz = "CET")
    [1] "2009-01-01 CET" "2009-02-01 CET" "2009-03-01 CET"
    

    When you have irregularities in your date-time data, you can use the truncated-parameter to specify how many irregularities are allowed:

    > parse_date_time(dates2, "ymdHMS", truncated = 3)
    [1] "2012-06-01 12:23:00 UTC" "2012-06-01 12:00:00 UTC" "2012-06-01 00:00:00 UTC"
    

    Used data:

    dates1 <- c("2009-01","2009-02","2009-03")
    dates2 <- c("2012-06-01 12:23","2012-06-01 12",'2012-06-01")
    

提交回复
热议问题