Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/08/2011, 17h38   #1
Invité de passage
 
Inscription : juillet 2011
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 16
Points : 1
Points : 1
Par défaut Modification table : incrementer une nouvelle variable en fonction d'une condition

Bonjour à tous,
J'importe depuis un fichier .txt une table avec plusieurs variables dont cep et ref. La table se présente sous la forme suivante :

cep ref ...

5 10
6 23
8 41
9 3
10 4
15 56
16 28
18 2
19 36
20 53
...

Voilà ce que j'aimerais obtenir (rajouts en rouge) :

cep ref ...

5 10
6 23
7 0
8 41
9 3
10 4
11 0
12 0
13 0
14 0

15 56
16 28
17 0
18 2
19 36
20 53
...

J'aimerais incrementer la variable cep de 1 lorsque ce n'est pas le cas, et mettre ref à 0 pour ces valeurs là. Comment pourrais-je faire ?
Merci beaucoup !
yemal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 18h28   #2
Membre expérimenté
 
Inscription : avril 2009
Messages : 538
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 538
Points : 541
Points : 541
tu en fais quoi apres de cette table "complétée" ?
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 18h34   #3
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Bonjour.
Une solution serait de créer une table complète pleine de zéros pour REF, et ensuite tu fusionnes (MERGE par exemple) en mettant ta table importée en 2e (pour que les valeurs de REF écrasent les 0 quand il y a effectivement une valeur).
Code :
1
2
3
4
5
6
7
8
9
10
DATA work.squelette ;
  DO cep = 5 TO 20 ;
   ref=0 ;
   OUTPUT ;
  END ;
RUN ;
DATA work.resultat ;
  MERGE work.squelette work.donnees ;
  BY cep ;
RUN ;
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 13h23   #4
Invité de passage
 
Inscription : juillet 2011
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 16
Points : 1
Points : 1
Par défaut proc sql et lignes qui se répètent

Merci beaucoup cela fonctionne très bien ! c'est une très bonne idée.

Dans ma table de départ (donnees) avec cep et ref j'avais une troisième variable appelée id que j'aimerais conserver dans ma table finale une fois que j'ai fais la fusion.
J'ai essayé avec une proc sql mais j'ai plein de lignes identiques qui se répètent....

Voici le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
DATA table1 ;
  DO cep = 5 TO 20 ;
   ref=0 ;
   OUTPUT ;
  END ;
RUN ;
DATA fusion ;
  MERGE table1 donnees ;
  BY cep ;
RUN ; 
 
proc sql;
CREATE TABLE res1 AS SELECT fusion.cep AS cep, fusion.ref AS ref, id FROM fusion, donnees;
J'ai aussi essayé avec l'instruction KEEP mais cela ne marche pas non plus...

Merci encore !
yemal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h45.


 
 
 
 
Partenaires

Hébergement Web