Comment pouvons-nous faire itération conditionnelle dans un ensemble de données sas

StackOverflow https://stackoverflow.com/questions/560132

  •  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

Était-ce utile?

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
*/
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top