Я пытаюсь получить число каждой конкретной недели, то есть 1 за первую неделю, 2 для второго и т. Д.Lubridate week() дает мне «неправильную» неделю, возможную проблему TZ?
Мои данные начинаются с 1 января 2012 года и при условии, что все даты/времени имеют отношение к часовому поясу Chicago/CST6CDT. С самого начала я, похоже, испытываю проблему (с моим пониманием или программированием), получая функцию недели, чтобы дать мне то, что мне нужно.
Например ...
x=seq(as.POSIXlt("2012-1-1"), as.POSIXlt("2012-1-10"), by="day")
cbind(as.character(x), week(x))
... дает мне ...
[,1] [,2]
[1,] "2012-01-01" "1"
[2,] "2012-01-02" "1"
[3,] "2012-01-03" "1"
[4,] "2012-01-04" "1"
[5,] "2012-01-05" "1"
[6,] "2012-01-06" "1"
[7,] "2012-01-07" "2"
[8,] "2012-01-08" "2"
[9,] "2012-01-09" "2"
[10,] "2012-01-10" "2"
7 января 2012, в субботу, следует рассматривать как часть 1-ой недели, право ? Настройка часового пояса, похоже, не помогает.
x=seq(as.POSIXlt("2012-1-1", tz="CST6CDT"), as.POSIXlt("2012-1-10", tz="CST6CDT"), by="day")
Есть ли способ обойти это?
Использует ли ISO неделя? У них есть некоторые противоречивые правила. http://en.wikipedia.org/wiki/ISO_week_date –
Это связано с самой функцией 'week'. Пожалуйста, обратитесь к моему ответу. Благодарю. – Mayou