Vous n'êtes pas identifié.
Bienvenue sur le site support de mes ouvrages d'introduction à SAS
La 4ème édition de mon ouvrage est toujours disponible !
Deux exercices en un cette semaine....
Le programme suivant crée la table TEST :
Data test(drop=i); call streaminit(123456); do i=1 to 50; x=int(rand("uniform")*50); output; end; run;
On souhaite obtenir une table qui vous donnera le minimum et le maximum de X :
Facile me direz vous et vous imaginez déjà que vous allez passer par PROC MEANS et la création d'une table de résultats.
Si vous vous dites cela, c'est que vous ne me connaissez pas encore.... vous allez devoir obtenir ce résultat au moyen d'une unique étape DATA (et d'un proc print;run; bien entendu).
Et comme c'est (presque) simple, vous vous amuserez aussi avec cette seconde table :
data test3(drop=i); call streaminit(123456); length client $ 7 ; do client='Pierre','Paul','Jacques'; do i=1 to 50; x=int(rand("uniform")*50); output; end; end; run;
il s'agit ici, et toujours au moyen uniquement d'une étape DATA d'obtenir une table de trois observations, vous présentant, pour chaque client, les valeurs min et max prises par X. Vous avez droit, suite à votre étape DATA à un "proc print;run;"
Vous obtiendrez ceci :
Je réponds à l'avance à la question que certains ne manqueront pas de me poser "mais on ne peut pas utiliser, avant l'étape DATA, une procédure (au hasard... PROC SORT) ?" - la réponse est 'non'... uniquement une étape DATA
et si vous vous dites "c'est facile, faut faire ça et ça", faites le et vérifiez que vous obtenez bien le résultat attendu...
Ne spoilez pas ce sujet des beaux mercredis en postant votre réponse dans le forum de discussions, envoyez moi un mail ;-)
à la semaine prochaine
Ce sujet est maintenant archivé - seuls les utilisateurs inscrits de www.sas-sr.com peuvent consulter l'intégralité du sujet et les réponses aux questions posées.
pour vous identifier, suivez ce lien
pour vous inscrire, suivez ce lien
Hors ligne