Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Les posteurs les plus actifs de la semaine
Aucun utilisateur

Le Deal du moment :
Tablette 11″ Xiaomi- Mi Pad 6 global version ...
Voir le deal
224.97 €

Un format depuis une table ?

2 participants

Aller en bas

Un format depuis une table ? Empty Un format depuis une table ?

Message par Mac_Leod 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

Revenir en haut Aller en bas

Un format depuis une table ? Empty Re: Un format depuis une table ?

Message par niaboc 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
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Un format depuis une table ? Empty Re: Un format depuis une table ?

Message par Mac_Leod 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

Revenir en haut Aller en bas

Un format depuis une table ? Empty Re: Un format depuis une table ?

Message par niaboc Jeu 24 Mar 2016 - 15:56

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

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Un format depuis une table ? Empty Re: Un format depuis une table ?

Message par Mac_Leod 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

Revenir en haut Aller en bas

Un format depuis une table ? Empty Re: Un format depuis une table ?

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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