> On 12 Jan 2017, at 22:20 , Nordlund, Dan (DSHS/RDA) <nord...@dshs.wa.gov> > wrote: > > See comments inline. > >> -----Original Message----- >> From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Bob Rudis >> Sent: Thursday, January 12, 2017 12:41 PM >> To: David Winsemius >> Cc: r-help@r-project.org >> Subject: Re: [R] Match ISO 8601 week-of-year numbers to month-of-year >> numbers on Windows with German locale >> >> Aye, but this: >> >> some_dates <- as.POSIXct(c("2015-12-24", "2015-12-31", "2016-01-01", >> "2016-01-08")) >> >> (year_week <- format(some_dates, "%Y-%U")) >> ## [1] "2015-51" "2015-52" "2016-00" "2016-01" >> >> (year_week_day <- sprintf("%s-1", year_week)) >> ## [1] "2015-51-1" "2015-52-1" "2016-00-1" "2016-01-1" >> >> (as.POSIXct(year_week_day, format = "%Y-%U-%u")) >> ## [1] "2015-12-21 EST" "2015-12-28 EST" "2016-01-04 EST" "2016-01-04 EST" >> >> works fine on macOS & Linux (Ubuntu, anyway), but it fails on Windows (10, >> 64bit, R 3.3.2): >> >> (as.POSIXct(year_week_day, format = "%Y-%U-%u")) >> ## [1] "2015-12-21 PST" "2015-12-28 PST" NA "2016-01-04 PST" > > Why do you say it works fine on Ubuntu? The date "2016-01-01" is in week 0 > of 2016. There is no Monday in week 0. So I would argue the return value > of NA from Windows is more appropriate than returning the date of Monday in > week 1 of 2016 like Ubuntu does.
Yes, the Ubuntu output suggests that Jan 4 is Monday of both w1 and w0...! But I'm puzzled: Around here, we actually use week numbers (for planning), but they are never zero: 2016-01-01 was Friday, week 53 (of 2015) 2014-12-31 was Wednesday, week 1 (still 2015). So it would seem that any logic that converts dates to/from week numbers would need to be rather more careful than to try and use %Y for the year... -pd > > Dan > > Daniel Nordlund, PhD > Research and Data Analysis Division > Services & Enterprise Support Administration > Washington State Department of Social and Health Services > >> >> On 1/12/17, David Winsemius <dwinsem...@comcast.net> wrote: >>> >>>> On Jan 12, 2017, at 8:14 AM, Janko Thyson <janko.thy...@gmail.com> >> wrote: >>>> >>>> Dear list, >>>> >>>> I'm experiencing problems with converting strings of the format >>>> "YYYY-<weekofyear>" (e.g. 2016-01, 2016-52) to proper POSIX dates >>>> which (I >>>> think) I need in order to retrieve the month-of-the-year number. >>>> >>>> Simpler put: I'd like to match week-of-the-year numbers to >>>> month-of-the-year numbers. Ideally, the week-of-the-year number >> would >>>> follow the ISO 8601 convention (i.e. format argument "%V") instead of >>>> the US (format argument "%U") or UK (format argument "%W") >> convention. >>>> >>>> After posting this to Stackoverflow, I have strong reasons to believe >>>> that the issue is caused by Windows: >>>> http://stackoverflow.com/questions/41616407/match-iso-8601-week- >> numbe >>>> rs-to-month-of-year-on-windows-with-german- >> locale/41617215?noredirect >>>> =1#comment70436768_41617215 >>>> >>>> Example: >>>> >>>> # ISO 8601 convention: >>>> >>>> (yw <- format(posix, "%Y-%V")) >>> >>> The documentation for R datetime format parameters ?strptime says %V >>> is ignored on input. >>> >>> >>>> # [1] "2015-52" "2015-53" "2016-53" "2016-01" >>>> ywd <- sprintf("%s-1", yw)(as.POSIXct(ywd, format = "%Y-%V-%u")) >>> >>> The documentation for R datetime format parameters ( = ?strptime) says >>> %V is ignored on input. >>> >>> You should leartn to post plain text to r-help. >>> >>> -- >>> David. >>> >>> >>>> # [1] >>>> "2015-01-12 CET" "2015-01-12 CET" "2016-01-12 CET" "2016-01-12 CET"# >>>> -> utterly wrong!!! >>>> >>>> # US convention: >>>> (yw <- format(posix, "%Y-%U"))# [1] "2015-51" "2015-52" "2016-00" >>>> "2016-01" >>>> ywd <- sprintf("%s-1", yw)(as.POSIXct(ywd, format = "%Y-%U-%u"))# [1] >>>> "2015-12-21 CET" "2015-12-28 CET" NA "2016-01-04 CET"# >>>> -> NA problem for week 00A fellow R user tested this on both macOS >>>> -> and >>>> Ubuntu and he didn't encounter the issue: >>>> >>>> some_dates <- as.POSIXct(c("2015-12-24", "2015-12-31", "2016-01-01", >>>> "2016-01-08")) >>>> (year_week <- format(some_dates, "%Y %U"))## [1] "2015 51" "2015 52" >>>> "2016 00" "2016 01" >>>> (year_week_day <- sprintf("%s 1", year_week))## [1] "2015 51 1" "2015 >>>> 52 1" "2016 00 1" "2016 01 1" >>>> (as.POSIXct(year_week_day, format = "%Y %U %u"))## [1] "2015-12-21 >>>> EST" "2015-12-28 EST" "2016-01-04 EST" "2016-01-04 EST" >>>> >>>> My session info: >>>> >>>>> sessionInfo() >>>> R version 3.3.2 (2016-10-31) >>>> Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows >= >> 8 >>>> x64 (build 9200) >>>> >>>> locale:[1] LC_COLLATE=German_Germany.1252 >>>> LC_CTYPE=German_Germany.1252 >> LC_MONETARY=German_Germany.1252 >>>> [4] LC_NUMERIC=C LC_TIME=English_United >>>> States.1252 >>>> >>>> attached base packages:[1] stats graphics grDevices utils >>>> datasets methods base >>>> >>>> other attached packages: >>>> [1] fva_0.1.0 digest_0.6.10 readxl_0.1.1 dplyr_0.5.0 >>>> plyr_1.8.4 magrittr_1.5 >>>> [7] memoise_1.0.0 testthat_1.0.2 roxygen2_5.0.1 devtools_1.12.0 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] Rcpp_0.12.8 lubridate_1.6.0 assertthat_0.1 packrat_0.4.8-1 >>>> crayon_1.3.2 withr_1.0.2 >>>> [7] R6_2.2.0 DBI_0.5-1 stringi_1.1.2 rstudioapi_0.6 >>>> tools_3.3.2 stringr_1.1.0 [13] tibble_1.2 >>>> >>>> Any idea on how to workaround this issue on Windows? >>>> >>>> Thanks and best regards, >>>> >>>> Janko Thyson >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> R-help@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. >>> >>> David Winsemius >>> Alameda, CA, USA >>> >>> ______________________________________________ >>> R-help@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. >>> >> > > ______________________________________________ > R-help@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. -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-help@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.