[R] strptime, date and conversion of week number into POSIX

Uwe Ligges ||gge@ @end|ng |rom @t@t|@t|k@tu-dortmund@de
Mon Feb 22 17:09:20 CET 2021


That monday does not exist. FOr the week before:

strptime(paste0("2020-52","-1"),format="%Y-%W-%u")
[1] "2020-12-28"

One week later is no longer in 2020, so there is no 53th week.

Best,
Uwe Ligges





On 22.02.2021 16:15, Patrick Giraudoux wrote:
> Sorry to answer to myself, but the format was clearly incorrect in the
> previous post. It should read, refering to the 1th day of the week:
> 
> strptime(paste0(mydate,"-1"),format="%Y-%W-%u")
> 
> It converts better, but with a NA on week 53
> 
>> strptime(paste0(pays$year_week,"-1"),format="%Y-%W-%u")
>    [1] "2020-01-06 CET"  "2020-01-13 CET"  "2020-01-20 CET"  "2020-01-27 CET"
>    [5] "2020-02-03 CET"  "2020-02-10 CET"  "2020-02-17 CET"  "2020-02-24 CET"
>    [9] "2020-03-02 CET"  "2020-03-09 CET"  "2020-03-16 CET"  "2020-03-23 CET"
> [13] "2020-03-30 CEST" "2020-04-06 CEST" "2020-04-13 CEST" "2020-04-20 CEST"
> [17] "2020-04-27 CEST" "2020-05-04 CEST" "2020-05-11 CEST" "2020-05-18 CEST"
> [21] "2020-05-25 CEST" "2020-06-01 CEST" "2020-06-08 CEST" "2020-06-15 CEST"
> [25] "2020-06-22 CEST" "2020-06-29 CEST" "2020-07-06 CEST" "2020-07-13 CEST"
> [29] "2020-07-20 CEST" "2020-07-27 CEST" "2020-08-03 CEST" "2020-08-10 CEST"
> [33] "2020-08-17 CEST" "2020-08-24 CEST" "2020-08-31 CEST" "2020-09-07 CEST"
> [37] "2020-09-14 CEST" "2020-09-21 CEST" "2020-09-28 CEST" "2020-10-05 CEST"
> [41] "2020-10-12 CEST" "2020-10-19 CEST" "2020-10-26 CET"  "2020-11-02 CET"
> [45] "2020-11-09 CET"  "2020-11-16 CET"  "2020-11-23 CET"  "2020-11-30 CET"
> [49] "2020-12-07 CET"  "2020-12-14 CET"  "2020-12-21 CET"  "2020-12-28 CET"
> [53] NA                "2021-01-04 CET"  "2021-01-11 CET"  "2021-01-18 CET"
> [57] "2021-01-25 CET"  "2021-02-01 CET"  "2021-02-08 CET"
> Warning message:
> In strptime(paste0(pays$year_week, "-1"), format = "%Y-%W-%u") :
>     (0-based) yday 369 in year 2020 is invalid
> 
> 
> Any idea on how to handle this ?
> 
> 
> 
> 
> Le 22/02/2021 à 15:26, Patrick Giraudoux a écrit :
>>
>> Dear all,
>>
>> I have a trouble trying to convert dates  given in character to POSIX.
>> The date is expressed as a year then the week number e.g. "2020-01"
>> (first week of 2020). I thought is can be converted as following:
>>
>> strptime(mydate,format="%Y-%W")
>>
>> %W refering to the week of the year as decimal number (00–53) using
>> Monday as the first day of week (and typically with the first Monday
>> of the year as day 1 of week 1), as indicated in the doc.
>>
>> However, I got this result, with the month fixed to 02 (february) and
>> day 22 (only the year is  converted correctly):
>>
>> strptime(mydate,format="%Y-%W") [1] "2020-02-22 CET" "2020-02-22 CET"
>> "2020-02-22 CET" "2020-02-22 CET" [5] "2020-02-22 CET" "2020-02-22
>> CET" "2020-02-22 CET" "2020-02-22 CET" [9] "2020-02-22 CET"
>> "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET" [13] "2020-02-22
>> CET" "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET" [17]
>> "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET"
>> [21] "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET" "2020-02-22
>> CET" [25] "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET"
>> "2020-02-22 CET" [29] "2020-02-22 CET" "2020-02-22 CET" "2020-02-22
>> CET" "2020-02-22 CET" [33] "2020-02-22 CET" "2020-02-22 CET"
>> "2020-02-22 CET" "2020-02-22 CET" [37] "2020-02-22 CET" "2020-02-22
>> CET" "2020-02-22 CET" "2020-02-22 CET" [41] "2020-02-22 CET"
>> "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET" [45] "2020-02-22
>> CET" "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET" [49]
>> "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET" "2020-02-22 CET"
>> [53] "2020-02-22 CET" "2021-02-22 CET" "2021-02-22 CET" "2021-02-22
>> CET" [57] "2021-02-22 CET" "2021-02-22 CET" "2021-02-22 CET"
>>
>> You'll find below a dump of "mydate" you can copy and paster if you
>> need a try
>>
>> Any hint welcome...
>>
>> Best,
>>
>> Patrick
>>
>> mydate <-
>> c("2020-01", "2020-02", "2020-03", "2020-04", "2020-05", "2020-06",
>> "2020-07", "2020-08", "2020-09", "2020-10", "2020-11", "2020-12",
>> "2020-13", "2020-14", "2020-15", "2020-16", "2020-17", "2020-18",
>> "2020-19", "2020-20", "2020-21", "2020-22", "2020-23", "2020-24",
>> "2020-25", "2020-26", "2020-27", "2020-28", "2020-29", "2020-30",
>> "2020-31", "2020-32", "2020-33", "2020-34", "2020-35", "2020-36",
>> "2020-37", "2020-38", "2020-39", "2020-40", "2020-41", "2020-42",
>> "2020-43", "2020-44", "2020-45", "2020-46", "2020-47", "2020-48",
>> "2020-49", "2020-50", "2020-51", "2020-52", "2020-53", "2021-01",
>> "2021-02", "2021-03", "2021-04", "2021-05", "2021-06")
>>
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list