Bonjour,
j'ai calculé la moyenne d'une variable "age" à l'aide de la proc means. Mais je voudrais multiplié cet age moyen par 12. Peut on faire cela dans un proc means?
Merci
Bonjour,
j'ai calculé la moyenne d'une variable "age" à l'aide de la proc means. Mais je voudrais multiplié cet age moyen par 12. Peut on faire cela dans un proc means?
Merci
Le plus simple est sans doute de passer par du SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 proc sql; select mean(age)*12 from ta_table; quit;
J'avais pensé à ça aussi.
Mais je voudrais une solution générale c'est à dire pour un grand nombre de variable...
Si on avait 20 variables, on ne va pas faire:
select mean(Var1)*12,...,mean(Var20)*12
C'est pour ça je demande si on peut le faire directement par la proc means ...
Bonjour,
Je ne vois pas de solution directe avec la proc means mais si le code à taper te rebute, la solution de Steel plus du macro-langage me paraît une alternative intéressante !
Le macro-pogramme "mp_means" utilise trois macro-variables :
- mv_times : coefficient multiplicateur
- mv_table : nom de la table en entrée
- mv_vars : variables de mv_table à traiter
Bon courage !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 %macro mp_means (mv_times=12, mv_table=sashelp.shoes, mv_vars=sales returns) ; proc sql ; select mean(%scan(&mv_vars,1))*&mv_times %DO i = 2 %to 1 + %sysfunc(countc(&mv_vars," ")) ; , mean(%scan(&mv_vars,&i))*&mv_times %END ; from &mv_table ; quit ; /* Test : %mp_means ; */ %mend mp_means ;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager