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 29/07/2011, 17h54   #1
Invité régulier
 
Femme
economiste
Inscription : juillet 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : economiste
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juillet 2011
Messages : 14
Points : 9
Points : 9
Par défaut Fusionner des bases SAS

Bonjour à tous,

je débute en SAS et me pose une question concernant la fusion de bases.

ma premiere base, base1 comprend 7 000 observations et 200 variables
ma seconde base, base2 comprend 2 500 observations et 50 variables.

une variable est en commun dans les deux bases et se nomme ID. je note que les 2 500 observations dans base2 portent un ID identique à la base1.
je souhaite fusionner les bases

voila mon programme:

Code :
1
2
3
4
5
6
7
8
9
10
proc sort DATA = stat.base1;
BY id;
proc sort DATA =stat.base2;
BY id;
run;
 
DATA stat.fusion;
merge 	  stat.base1  stat.base2;
	BY id;
run;
Mon probleme: le résultat me donne un nombre de variables cohérent MAIS plus de 9 000 observations. alors que je devrais avoir 7 000 observation max.

Que faire

Merci d'avance
Cloaq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 19h00   #2
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.
Si tous les ID de la table n°2 se retrouvent dans la table n°1 c'est qu'il y a des doublons quelque part (dans la table 2 ?).
Essaye ça :
Code :
1
2
3
4
5
proc sort DATA = stat.base1 out=_null_ nodupkey ;
BY id;
proc sort DATA =stat.base2 out=_null_ nodupkey ;
BY id;
run;
Tu verras dans ta Log le nombre d'observations présentant des doublons sur ID dans chacune des tables. Si tu souhaites les éliminer, remplace _NULL_ par le nom d'une table SAS qui ne contiendra plus qu'une observation par valeur d'ID. Alors tu es sûr de ta jointure.
Le pire des cas serait d'avoir des doublons dans les deux tables parce que dans ce cas MERGE associe les doublons par ordre d'apparition, plutôt que de créer toutes les combinaisons possibles.

Bon courage.
Olivier
olivier.decourt 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 13h27.


 
 
 
 
Partenaires

Hébergement Web