108 votes

Convertir l'année et le mois (format "aaaa-mm") en date ?

J'ai un jeu de données qui ressemble à ceci :

 Month    count
2009-01  12
2009-02  310
2009-03  2379
2009-04  234
2009-05  14
2009-08  1
2009-09  34
2009-10  2386

Je veux tracer les données (mois comme valeurs x et compte comme valeurs y). Comme il y a des lacunes dans les données, je souhaite convertir les informations du mois en date. J'ai essayé:

 as.Date("2009-03", "%Y-%m")

Mais cela n'a pas fonctionné. Qu'est-ce qui ne va pas? Il semble que as.Date() nécessite également un jour et ne soit pas en mesure de définir une valeur standard pour le jour ? Quelle fonction résout mon problème ?

93voto

Sacha Epskamp Points 14956

Puisque les dates correspondent à une valeur numérique et à une date de début, vous avez bien besoin du jour. Si vous avez vraiment besoin que vos données soient au format Date, vous pouvez simplement fixer le jour au premier de chaque mois manuellement en le collant à la date :

 month <- "2009-03"
as.Date(paste(month,"-01",sep=""))

36voto

Ben Rollert Points 501

La solution la plus concise si vous avez besoin que les dates soient au format Date :

 library(zoo)
month <- "2000-03"
as.Date(as.yearmon(month))
[1] "2000-03-01"

as.Date fixera le premier jour de chaque mois à un objet yearmon pour vous.

15voto

zx8754 Points 13573

Utilisation du package à tout moment :

 library(anytime)

anydate("2009-01")
# [1] "2009-01-01"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X