1 votos

Cálculo de la semana incorrecta de 2019 por el formato de fecha estándar.

Normalmente puedo calcular la semana del año por el formato de fecha estándar máscara %Y%W. Hasta 2019 funcionó bastante bien, pero últimos días he notado que en la primera semana del año 2019 (2018/12/31-2019/01/06) se muestra como el último número de la semana 53 a partir de 2018. Y sólo la semana 2019/01/07-2019/01/13 es la primera semana de 2019. He comprobado si es correcta.

En todas partes se puede ver que la semana 2018/12/31-2019/01/06 es actualmente la primera semana de 2019. Y aún Oracle sabe to_char(..., 'yyyyiw'), pero R no. Al menos deberían tener la misma opinión.

Es importante para mí y creo que se ve como un error. Estoy usando R 3.5.0.

1voto

Abhishek Sha Puntos 415

Ver ?strftime :

  ‘%U' Week of the year as decimal number (00-53) using Sunday as
      the first day 1 of the week (and typically with the first
      Sunday of the year as day 1 of week 1).  The US convention.

 ‘%V' Week of the year as decimal number (01-53) as defined in ISO
      8601.  If the week (starting on Monday) containing 1 January
      has four or more days in the new year, then it is considered
      week 1.  Otherwise, it is the last week of the previous year,
      and the next week is week 1.  (Accepted but ignored on
      input.)

 ‘%W' 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).  The UK convention.
 

La máscara de formato IW en Oracle devuelve el número de semana ISO del año, es decir, %V en R:

 R> x <- as.Date("2018-12-28") + 0:10
R> data.frame(date=x, weeknum=format(x, "%V"))
         date weeknum
1  2018-12-28      52
2  2018-12-29      52
3  2018-12-30      52
4  2018-12-31      01
5  2019-01-01      01
6  2019-01-02      01
7  2019-01-03      01
8  2019-01-04      01
9  2019-01-05      01
10 2019-01-06      01
11 2019-01-07      02
 

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: