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 18/04/2011, 11h02   #1
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
Par défaut Tableau croisé

Bonjour à tous,

je vous expose mon probleme:

j'ai une table TOTO: COMMUNE DCRAN IPONDI MIGRANTS FLUX
voir PJ.
je veux transformer cette table de façon à avoir une table comme ça:
COMMUNE (la liste de ts mes DCRAN préfixé par comm) et afficher le flux de chacune.
Exemple:

Citation:
commune comm03030 comm03059 comm03071 ...
63001 4E-11 4E-11 8e-11
63002 ... .... ...
63003 ... .... ..
...
pour l'instant avec votre aide j'ai réussi à faire ça:
Code :
1
2
3
4
5
6
7
8
/*tableau croisé*/
proc freq DATA=toto noprint;
TABLES COMMUNE*DCRAN / out=resultat;
run;
proc transpose DATA=resultat prefix=comm out=tran(WHERE=(_NAME_="COUNT"));
BY COMMUNE;
id DCRAN;
run;
merci encore pour votre aide.
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 13h06   #2
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Tu peux me dire pourquoi ce code que Barahoui t'a proposé ne te va pas?
Je me rappel qu'il y avait un fichier avec, si tu peux l'envoyer en expliquant pourquoi ça te va pas
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 13h14   #3
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
en fait qund j'ai fait ça au début, je pensais pouvoir faire une jointure entre cette table là et une autre table ou il y aurait le flux.

mon but est de faire un tableau croisé des communes et d'afficher à ce moment ce que j'appelle le flux pour chaque commune.

avec le code de bahraoui ça m'affichait le nombre de personne(à ce moment là j'y avait pas intégrer le flux.
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 13h50   #4
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
pour les communes j'en ai 473 de 63001 à 63473.
pour les dcRAn normalement j'ai toutes les communes possible de france plus 99999 pour l'étranger.
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 14h25   #5
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
merci je vais tester ta proposition et comprendre petit petit ce que tu as fait.
merci encore.
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h02   #6
Nouveau Membre du Club
 
Homme Gaëtan
Inscription : avril 2011
Messages : 29
Détails du profil
Informations personnelles :
Nom : Homme Gaëtan
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 29
Points : 26
Points : 26
Bonjour,

MEGAMIND2 j'ai l'impression que ton code donne le même résultat que la proc transpose suivante
Code :
1
2
3
4
5
PROC TRANSPOSE DATA=test  out=COMMUNE_COMMUNE (DROP=_NAME_) prefix=comm;/* on transpose afin d'avoir les données en lignes et non en colonne*/
	BY  COMMUNE;
	VAR flux;
	ID DCRAN;
RUN;
sauf que la proc transpose ne prend pas en comtpe les DCRAN à "."
boutchiwah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h24   #7
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Je sais, sinon ça serait trop facile. Il existe peut être une option pour pallier à ce genre de problème mais je ne la connais pas.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h33   #8
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
le programme tourne toujours!!!!!(le fichier est lourd)
mais je donnerais suite pour dire si c'est résolu.
merci encore pour votre aide
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h33   #9
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Au tant pour moi et merci Gaetan, il y a plus simple:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
DATA TEST;
input commune $ DCRAN IPONDI MIGRANT FLUX;
CARDS;
6301 03030 4 1 0.02
6301 03059 4 2 0.02
6301 03071 4 1 0.03
6301 03094 4 1 0.02
6301 03104 4 1 0.02
6301 03109 4 4 0.06
6301 03118 4 1 0.02
6301 03271 4 1 0.01
6301   .   4 2 0.02
6301 13103 4 1 0.02
6301 15107 4 1 0.02
6302 45471 4 1 0.02
6302 13103 4 1 0.02
6302 15107 4 1 0.02
6302 45472 4 1 0.02
;
RUN;
 
DATA TEST;
		SET TEST;
		DCRAN2=compress("comm_"!!input(DCRAN,best.));
		RUN;
 
PROC TRANSPOSE DATA=test  out=COMMUNE_COMMUNE (DROP=_NAME_) ;
	BY  COMMUNE;
	VAR flux;
	ID DCRAN2;
RUN;
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h35   #10
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
ok je vais essayer aussi la version de gaeton.
Merci à vous deux.
mais pour l'instant j'ai déja lancé la solution de megamind2
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h48   #11
Nouveau Membre du Club
 
Homme Gaëtan
Inscription : avril 2011
Messages : 29
Détails du profil
Informations personnelles :
Nom : Homme Gaëtan
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 29
Points : 26
Points : 26
ah oui j'avais pas pensé à ça, moi je pensais plus faire une modif à la fin

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
DATA TEST;
input commune $ DCRAN IPONDI MIGRANT FLUX;
CARDS;
6301 03030 4 1 0.02
6301 03059 4 2 0.02
6301 03071 4 1 0.03
6301 03094 4 1 0.02
6301 03104 4 1 0.02
6301 03109 4 4 0.06
6301 03118 4 1 0.02
6301 03271 4 1 0.01
6301   .   4 2 0.02
6301 13103 4 1 0.02
6301 15107 4 1 0.02
6302 45471 4 1 0.02
6302 13103 4 1 0.02
6302 15107 4 1 0.02
6302 45472 4 1 0.02
;
run;
 
 
PROC SORT DATA=test;
	BY commune;
RUN;
 
PROC TRANSPOSE DATA=test  out=COMMUNE_COMMUNE (DROP=_NAME_) prefix=comm;
	BY  COMMUNE;
	VAR flux;
	ID DCRAN;
RUN; 
 
 
DATA synthese (DROP = DCRAN flux IPONDI MIGRANT);
merge test (WHERE=(DCRAN=.))
	  commune_commune;
BY commune;
comm_=flux;
run;
mais ta version est encore plus simple.
boutchiwah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h56   #12
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Citation:
Envoyé par debutsas Voir le message
ok je vais essayer aussi la version de gaeton.
Merci à vous deux.
mais pour l'instant j'ai déja lancé la solution de megamind2
Tu peux l'arrêter et opter pour la dernière solution que j'ai posté, c'est plus simple et plus optimale.
ps: debutsas et Gaetan, vous êtes en stage au même endroit ou quoi?
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h57   #13
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
non pas à ma connaissance!!!lol
c'est qu'on doit utiliser peut être les mêmes bases de l'INSEE
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h59   #14
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Citation:
Envoyé par debutsas Voir le message
non pas à ma connaissance!!!lol
c'est qu'on doit utiliser peut être les mêmes bases de l'INSEE
Retournes toi, il est juste derrière toi
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 16h04   #15
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
lol ben franchement j'aimerais bien!! au moins on pourra s'aider pour des trucs!!!
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 16h15   #16
Nouveau Membre du Club
 
Homme Gaëtan
Inscription : avril 2011
Messages : 29
Détails du profil
Informations personnelles :
Nom : Homme Gaëtan
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 29
Points : 26
Points : 26

Non je ne suis pas derrière lui. mais en fait comme je n'utilise pas trop les proc transpose, tabulate, freq ou autre (en fait je fais quasiment que des DATA et des macro) du coup je profite des problèmes comme celui de debutsas pour m'entrainer tout simplement ^^
comme ça j'apprend beaucoup et j'aide un peu
boutchiwah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 16h17   #17
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Citation:
Envoyé par boutchiwah Voir le message

Non je ne suis pas derrière lui. mais en fait comme je n'utilise pas trop les proc transpose, tabulate, freq ou autre (en fait je fais quasiment que des DATA et des macro) du coup je profite des problèmes comme celui de debutsas pour m'entrainer tout simplement ^^
comme ça j'apprend beaucoup et j'aide un peu

Même si cette macro (que j'ai supprimé) ne servait à rien, c'est un bon exemple pour s'entrainer.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 16h18   #18
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
Merciiii bcp
oulla j'en ai apris des choses moi sur developpez.com !!!
Merci encore
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 09h53   #19
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
Bonjour les gars,
j'ai encore un petit soucis:

--> avec la 1ère méthode de MEGAMIND2, le programme s'arrete: il me met erreur au niveau du set( pour concatener les tables).

--> pour la solution de gaeton, non plus elle ne marche pas.
voilà en partie ce qui s'affiche sur le log:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
NOTE: Le message cité plus haut était valable pour le groupe BY :
      COMMUNE=63032
ERREUR: La valeur de la variable ID "comm_63034" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_63075" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_63113" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_63193" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_63453" apparaît deux fois dans le même groupe BY.
NOTE: Le message cité plus haut était valable pour le groupe BY :
      COMMUNE=63034
ERREUR: La valeur de la variable ID "comm_99999" apparaît deux fois dans le même groupe BY.
NOTE: Le message cité plus haut était valable pour le groupe BY :
      COMMUNE=63037
ERREUR: La valeur de la variable ID "comm_63038" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_63279" apparaît deux fois dans le même groupe BY.
NOTE: Le message cité plus haut était valable pour le groupe BY :
      COMMUNE=63038
ERREUR: La valeur de la variable ID "comm_3185" apparaît deux fois dans le même groupe BY.
ERREUR: La valeur de la variable ID "comm_3310" apparaît deux fois dans le même groupe BY.
ERREUR: Trop de groupes BY erronés.
NOTE: Le Système SAS a interrompu le traitement de cette étape en raison d'erreurs.
NOTE:  1783 observations copiées de la table WORK.TOTO.
AVERTISSEMENT: La table WORK.COMMUNE_COMMUNE est peut-être incomplète. Lorsque cette étape a été
               stoppée, il y avait 0 observations et 0 variables.
AVERTISSEMENT: Table WORK.COMMUNE_COMMUNE non remplacée car cette étape a été interrompue.
NOTE: La procédure TRANSPOSE a utilisé (Durée totale du processus) :
      temps réel                   0.34 secondes
      temps processeur   0.31 secondes
merciiiiii
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 09h55   #20
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Tu as gardé le méssage d'erreur de mon programme?
MEGAMIND2 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 04h58.


 
 
 
 
Partenaires

Hébergement Web