Les posteurs les plus actifs de la semaine
Eric Wajnberg
 
zezima
 
Nik
 
margotte185
 
c@ssoulet
 
Coco
 
Ayana
 


Un format depuis une table ?

Voir le sujet précédent Voir le sujet suivant Aller en bas

Un format depuis une table ?

Message par Mac_Leod le Mar 22 Mar 2016 - 11:00

Bonjour,


Je fais face à un problème de codage relativement embêtant, je m'explique.
J'ai deux tables, l'une dans laquelle j'ai une variable de date, l'autre dans laquelle j'ai une date de début, une date de fin, et un identifiant associé à la période entre ces deux dates.

Tab1 :
Code:
var_date
16-01-05
16-01-07
16-02-15
16-03-08
16-03-09
16-03-11

Tab2 :
Code:
identifiant date_debut date_fin
P1  01JAN2016  31JAN2016
P2  01FEB2016  29FEB2016
P3  01MAR2016  31MAR2016

Je cherche ainsi à attribuer l'identifiant de ma Tab2 à ma Tab1 selon la période sur laquelle est située ma date, c'est à dire :

Tab3 :
Code:
var_date  identifiant
16-01-05  P1
16-01-07  P1
16-02-15  P2
16-03-08  P3
16-03-09  P3
16-03-11  P3

La démarche selon laquelle j'aurais codé la chose aurait été de construire un format depuis ma Tab2 pour ensuite l'utiliser sur ma Tab1.
Via une proc format cntlin probablement mais je n'ai pas l'habitude de l'utiliser et cela se ressent quand j’exécute mes codes puisque ça ne fonctionne pas ...


J'en appelle donc à vous .. peut être la solution est plus simple que ce que je peux imaginer.


Mac_Leod.

Mac_Leod

Nombre de messages : 28
Date d'inscription : 25/06/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Un format depuis une table ?

Message par niaboc le Jeu 24 Mar 2016 - 14:38

J'ai l'impression que c'est plus une création de variable dans la table 2 plutôt qu'un format, non?

Il faut retravailler tes dates pour les mettre sur le même format. Ensuite tu fais une jointure du style :


Code:
where tab1.var_date between tab2.date_debut and tab2.date_fin

niaboc
avatar
niaboc

Nombre de messages : 918
Age : 30
Localisation : Paris
Date d'inscription : 05/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Un format depuis une table ?

Message par Mac_Leod le Jeu 24 Mar 2016 - 15:45

J'ai une solution qui a l'air de fonctionner - Une création de variable via un format.

Code:
data fmt_date;
 set tab2 (rename = (date_debut = start date_fin = end identifiant = label));
 format start end date9.  ;
 fmtname = "fmt_date";
 type = 'N';
run;
proc format cntlin = fmt_date;
run;
 
data tab3;
 set tab1;
 identifiant = put(var_date,fmt_date.);
run;

J'avais initialement codé la chose via une proc sql, mais cela demandait beaucoup plus de temps en traitement.


Dernière édition par Mac_Leod le Jeu 24 Mar 2016 - 16:30, édité 1 fois

Mac_Leod

Nombre de messages : 28
Date d'inscription : 25/06/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Un format depuis une table ?

Message par niaboc le Jeu 24 Mar 2016 - 15:56

Tu travailles sur des données issues de ce groupe?
http://www.nielsen.com/fr/fr.html
avatar
niaboc

Nombre de messages : 918
Age : 30
Localisation : Paris
Date d'inscription : 05/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Un format depuis une table ?

Message par Mac_Leod le Jeu 24 Mar 2016 - 16:30

Oui, tout à fait.

J'ai d'ailleurs omis le renommage d'une de mes variables !

Mac_Leod

Nombre de messages : 28
Date d'inscription : 25/06/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Un format depuis une table ?

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum