estoy obteniendo un resultado que no entiendo en R.¿Por qué se analiza sintácticamente "% Y-% m" usando strptime en R dando un resultado NA, pero funciona "% Y-% m-% d"?
Si uso strptime
con un año y un día formateado% Y-% m (como "2009-12"), me sale un resultado NA. Pero si agrego un día, como "2009-12-01", y cambio la cadena de formato en consecuencia, obtengo un resultado. Ejemplo:
> strptime("2009-12",format="%Y-%m")
[1] NA
> strptime("2009-12-03",format="%Y-%m-%d")
[1] "2009-12-03"
¿Por qué es eso?
Actualización: Lo siento curiosidad por qué es strptime no analiza un año y un mes, y la razón parece raro que no lo haría porque es hace analizar un año solamente, o un año y un día:
> strptime("2009",format="%Y") # year only. Works. Uses current month and day as defaults.
[1] "2009-12-02"
> strptime("2009-03",format="%Y-%d") # year and day. Works. Uses current month as default.
[1] "2009-12-03"
> strptime("2009-03",format="%Y-%m") # year and month. Doesn't work. ?
[1] NA
Update para explicar por qué esto no es un duplicado La posible duplicado se le pidió un par de años después de esta pregunta y que tiene que ver con una API independiente en R
: la función asDate
. Esta pregunta se trata de una peculiaridad de la función strptime
que a partir de R
3.1.3 todavía se aplica.
Dado que las fechas tienen días? ¿Qué esperas que produzca? – hadley
¿Querías que fuera el día del año? Si es así, prueba con "% j". –
Esperaba que utilizara el día actual como predeterminado, de la misma forma que lo haría si hiciera strptime ("2009", formato = "% Y"). Esto da como resultado "2009-12-01". – bantic