Problème format date

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Audrey Winter
Messages : 97
Enregistré le : 12 Mai 2014, 15:17

Problème format date

Messagepar Audrey Winter » 12 Aoû 2015, 14:14

Bonjour,
j'ai un petit problème avec le format des dates dans un de mes datas. J'ai utilisé comme d'habitude as.Date pour convertir les dates au formats utilisés par R et voici ce que j'obtiens :

Code : Tout sélectionner

>bene$DDN
 [1] 2/19/61  1/31/71  4/1/56   11/27/47 5/26/59  1/4/86   11/25/53 12/6/62  10/22/78 1/6/45 

> as.Date(bene$DDN , format = "%m/%d/%y")
 [1] "2061-02-19" "1971-01-31" "2056-04-01" "2047-11-27" "2059-05-26" "1986-01-04" "2053-11-25"
 [8] "2062-12-06" "1978-10-22" "2045-01-06"


pourquoi est ce que je me retrouve avec 2061 au lieu de 1961 ? Le pire est que pour certaines dates cela fonctionne, comme 1971, et pour d'autres non ...
Une idée ?
Merci !

Navarre Julien
Messages : 367
Enregistré le : 20 Avr 2012, 08:27

Re: Problème format date

Messagepar Navarre Julien » 12 Aoû 2015, 14:31

Bonjour,
c'est un standard POSIX (POSIX intervient ici car avec as.Date lorsque ce n'est pas le format par défaut de R ("%Y-%m-%d" ou "%Y/%m/%d") c'est sprtime qui est appelé) qui impose le comportement du format %y, les valeurs 00 à 68 sont préfixées par 20 et les valeurs 69 à 99 par 19. Il y a cette norme car c'est impossible de deviner de quel siècle proviennent les dates !

Mais tu peux peut être contourner le problème avec une expression régulière :

Code : Tout sélectionner

x <- gsub("(.*[//])(.*$)", "\\119\\2", c("2/19/61", "1/31/71"), perl = TRUE)
"2/19/1961" "1/31/1971"
as.Date(x, format = "%m/%d/%Y")
"1961-02-19" "1971-01-31"

Audrey Winter
Messages : 97
Enregistré le : 12 Mai 2014, 15:17

Re: Problème format date

Messagepar Audrey Winter » 28 Aoû 2015, 15:58

ah merci !


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité