|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 58 ![]() |
Bonjour,
Les individus sont des communes, j'ai une variable région et une variable numérique. Comment faire la somme par région? merci de votre aide |
|
|
00
|
|
|
#2 | ||||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Bonjour,
Code :
Code :
|
||||
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Fabien Inscription : novembre 2008 Messages : 59 ![]() |
Hello,
avant aussi j'utilisais les "BY" mais avec class, pas besoin de trier ! Code :
Suistrop |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Citation:
1) CLASS lit toute la table d'un seul bloc, alors que BY lit la table par morceaux. Sur une énorme volumétrie, ça fait une vraie différence, car CLASS peut générer des OUT OF MEMORY alors que BY passe impeccablement bien. 2) CLASS oblige à ajouter l'option NWAY ou une instruction WAYS à la proc MEANS pour récupérer une table (via l'instruction OUTPUT OUT, pas via l'ODS) qui ne contienne pas des agrégats intermédiaires. Par exemple, par défaut, avec BY region, j'obtiens une ligne par région dans une table SAS. Avec CLASS region, j'ai une ligne par région... plus une ligne "France entière". Bien pratique parfois, mais à filtrer dans 90% des cas. 3) visuellement, CLASS édite un seul tableau et BY en édite plusieurs. Ca dépend de l'aspect qu'on veut (et par exemple, dans ODS TAGSETS.EXCELXP on peut faire un onglet par "bloc BY" mais pas un onglet par valeur des variables de CLASS). Et accessoirement : pas forcément besoin de trier en présence d'un BY (mais bon, chut !). Il suffit d'un index ou d'une table ordonnée par blocs. Dans ce dernier cas, si on a d'abord toutes les observations avec la valeur 1, puis toutes celles avec 3, puis toutes celles avec 2, on dira BY maVariable NOTSORTED ; et on n'aurait pas besoin de reconstruire l'ordre correct 1 puis 2 puis 3 (ou 3 puis 2 puis 1). Enfin, ça peut être pratique d'utiliser les 2, justement pour obtenir certaines ruptures (changement de tableau) avec cependant des stats groupées par certaines variables. A titre perso, je fais surtout des CLASS, surtout depuis que la version 8 nous a offert les instructions WAYS et TYPES qui permettent d'être fainéant et de faire plusieurs proc Means en une seule. Olivier |
|
|
|
10
|
|
|
#6 | |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Citation:
Tu pourrais m'expliquer comment tu peux faire plusieurs proc Means en une seule? j'avais pas tilté sur le coups. Merci! ps: avec ton explication je prône pour l'utilisation de Class, si on peut se passer d'un tri, alors pourquoi s'en priver! |
|
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Disons que CLASS sera très bien dans 90% des cas. Et que sinon, il faudra se souvenir que BY existe.
Pour ce que je voulais dire par "plusieurs proc Means en une seule", voilà : Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Thank you!
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 58 ![]() |
Merci beaucoup pour votre aide.
J'ai une autre question: Les individus sont maintenant des régions et j'ai cinq variables numériques. Comment obtenir en sortie un seul individu par tableau (par sortie) ? |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 58 ![]() |
euh non, autant de tables que d'individus
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 58 ![]() |
les 22 régions françaises plus une "DOM-TOM".
|
|
|
00
|
|
|
#14 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Adaptes ce programme à tes 22 fameuses régions (macro oblige)
Code :
|
||
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
pourquoi ne passer par le by comme dans ton premier message megamind? ca crée autant de tables que d'individus
|
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
Ses individus sont les régions.. donc pas de soucis de ce côté...
du coup tu vas éxécuter 22 proc means... pas évident que ce soit plus optimisé qu'un proc sort+proc means avec un by... En tout ta syntaxe est moins digeste (de mon point de vue en tout cas.. c'est un peu faire compliqué quand on peu faire simple |
|
|
00
|
|
|
#18 | ||
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
c'est le principe du by
Code :
http://www2.sas.com/proceedings/sugi23/Coders/p75.pdf |
||
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
|
|
#20 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Mais oui, utilisons l'ODS. Et s'il faut produire plusieurs tables, pensons à ODS OUTPUT et à l'option MATCH_ALL très sous-employée (qui crée une table par bloc BY et stocke même les noms des tables dans une macro-variable).
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com