Comment pouvons-nous faire itération conditionnelle dans un ensemble de données sas
-
05-09-2019 - |
Question
Comment peut-on faire itération dans un ensemble de données sas. Par exemple, j'ai choisi la première. d'une variable. Et que vous voulez trouver l'apparition d'une condition particulière et définir une valeur quand il satisfait
La solution
étape de données SAS comporte une boucle intégrée sur les observations. Vous ne devez pas faire quelque chose, à moins que vous voulez, pour une raison quelconque. Par exemple, la commande suivante génère un nombre aléatoire pour chaque observation:
data one;
set sashelp.class;
rannum = ranuni(0);
run;
Si vous voulez faire une boucle sur les variables, alors il y a des tableaux. Par exemple, les variables, suivant initialise var1 à Var10, avec des nombres aléatoires:
data one;
array vars[1:10] var1-var10;
do i = 1 to 10;
vars[i] = ranuni(0);
end;
run;
La première. enfin. drapeaux sont générés automatiquement lorsque vous définissez un ensemble de données (triées) avec par déclaration. Un exemple:
proc sort data=sashelp.class out=class;
by age;
run;
data one;
set class;
by age;
first = first.age;
last = last.age;
run;
/* check */
proc print data=one;
run;
/* on lst
Obs Name Age first last
1 Joyce 11 1 0
2 Thomas 11 0 1
3 James 12 1 0
4 Jane 12 0 0
5 John 12 0 0
6 Louise 12 0 0
7 Robert 12 0 1
8 Alice 13 1 0
...
18 William 15 0 1
19 Philip 16 1 1
*/