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

Date

Messagepar Audrey Winter » 10 Déc 2014, 15:57

Bonjour,
J'ai un tableau de données avec des dates, et je voudrais créer une nouvelle variable date en attribuant pour chaque observations des dates déjà existante dans le tableau. J'ai donc fait une boucle comme suit :

Code : Tout sélectionner

greffes$Date_der_nouv <- NULL
for (i in 1:5812){
  if (greffes$STATAPG[i] == "DCD") greffes$Date_der_nouv[i]=greffes$DDCAPG[i]

  else greffes$Date_der_nouv[i]=max(greffes$DATB[i], greffes$DSTATAPG[i],na.rm=TRUE)
}


Le problème est que ma nouvelle variable (Date_der_nouv) n'est pas du tout sous le format date. pourtant : DATB, DSTATAPG et DDCAPG étaient des dates.

Si vous avez une idée elle est la bienvenue !
merci

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 14 Déc 2014, 11:55

Un exemple reproductible nous serait utile: extrait du jeu de données permettant de reproduire le pb.
Renaud

Alexis Thieullen
Messages : 128
Enregistré le : 04 Jan 2011, 12:11

Messagepar Alexis Thieullen » 16 Déc 2014, 15:37

Bonjour,

Apparemment les dates sont converties en donnée numérique dans la boucle. Une solution est de reconvertir la variable "Date_der_nouv" en date avec une des fonction de gestion des dates adaptée (selon le format d'entrée de tes dates, comme le dit Renaud un exemple reproductible est vraiment recommandé.. Ici mes dates simulées sont au format POSIXct donc -> fonction as.POSIXct) en stipulant comme origine la date de référence dans R, qui est : "1970-01-01 00:00.00". Cela donne :

Code : Tout sélectionner

> greffes
   STATAPG            DSTATAPG              DDCAPG Date_der_nouv
1       OK 2014-12-16 16:32:06 2014-12-16 16:31:34    1418743927
2      DCD 2014-12-16 16:30:51 2014-12-16 16:31:15    1418743876
3       OK 2014-12-16 16:31:11 2014-12-16 16:34:00    1418743872

> greffes$Date_der_nouv =  as.POSIXct(greffes$Date_der_nouv,origin = "1970-01-01 00:00.00")

> greffes
   STATAPG            DSTATAPG              DDCAPG       Date_der_nouv
1       OK 2014-12-16 16:32:06 2014-12-16 16:31:34 2014-12-16 16:32:06
2      DCD 2014-12-16 16:30:51 2014-12-16 16:31:15 2014-12-16 16:31:15
3       OK 2014-12-16 16:31:11 2014-12-16 16:34:00 2014-12-16 16:31:11


HTH


Retourner vers « Questions en cours »

Qui est en ligne

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