|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() statisticien Inscription : juin 2011 Messages : 3 ![]() |
Bonjour,
Depuis peu je dois utiliser SAS enterprise guide, mais parfois je retourne en programmation car je n'arrive pas à manipuler les données comme je le voudrais. J'ai une table un peu complexe que j'ai trié comme suit : ID (période)Commune VarA VARB …etc 1 A a l 2 A b m 3 A c n 4 A d o 1 B e p 2 B f q 3 B g r 4 B h s …etc …etc …etc …etc …etc Je veux calculer un taux de croissance pour chaque variable (VARA, puis VARB, ...etc), entre chaque période (ici de 1 à 4), qui correspond en fait à des dates (2009/07, 2009/08, 2009/09, ...etc) et dans chaque commune. Les données des VARA et VARB sont numériques. J'ai trouvé sur ce site une procédure qui a été écrite sur le forum SAS Base en 2008 : Code :
Avez-vous une solution ? Ou sur SAS entreprise guide ou sur un programme, pour que je puisse obtenir le résultat suivant : ID (période)Commune VARA TxVARA VARB TxVARB 1 A a (b-a)/a l (m-l)/l 2 A b (c-b)/b m (n-m)/m 3 A c (d-c)/c n (o-n)/n 4 A d o 1 B e (f-e)/e p (q-p)/p 2 B f (g-f)/f q (r-q)/q 3 B g (h-g)/g r (s-r)/r 4 B h s J'espère que vous avez une solution. Merci d'avance pour votre géni. |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour Laeticia.
Vu l'ordre de calcul de tes taux de croissance, il faudrait commencer par trier la table en ordre inverse : pour chaque commune, les périodes iraient de 4 à 1. Ensuite, la fonction DIF te permet de faire la soustraction entre la valeur lue à l'observation précédente et la valeur courante. Pour éviter de calculer des taux entre 2 communes différentes, on ajoutera une condition indiquant que rien n'est calculé si on aborde une nouvelle commune. Code :
Olivier |
||
|
|
00
|
|
|
#3 | ||||
|
Invité de passage
![]() statisticien Inscription : juin 2011 Messages : 3 ![]() |
Bonjour Olivier,
J'ai essayé d'apater le programme à mes données mais je n'ai pas réussi car je n'ai pas compris la première partie. Peux-tu me l'expliquer? Code :
Code :
A+ Laeticia. |
||||
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour.
Comme tu ne proposais pas de valeurs dans ton exemple, la première étape DATA en simule. La ligne qui te dérange, avec la fonction RANUNI, ne sert qu'à produire des valeurs aléatoires pour remplir la table et remplacer les A, B, C, ... de ton exemple. Comme toi tu as les vraies données, cette étape est inutile. Quant au signe, c'est la faute de DIF, qui fait "valeur courante - valeur précédente" alors qu'en général on veut le contraire. Il suffit donc de multiplier par -1 ton résultat pour retomber sur tes pieds. Bonne journée. Olivier |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() statisticien Inscription : juin 2011 Messages : 3 ![]() |
Merci beaucoup Olivier,
je ne connaissais pas du tout RANUNI, j'étais perdue. Merci encore !!! A+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com