Come possiamo fare iterazione condizionale in un insieme di dati sas

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

  •  05-09-2019
  •  | 
  •  

Domanda

Come possiamo fare l'iterazione in un insieme di dati SAS. Per esempio ho scelto il primo. di una variabile. E vuole trovare il verificarsi di una particolare condizione e impostare un valore quando si soddisfare

È stato utile?

Soluzione

passaggio di dati SAS ha un built-in loop su osservazioni. Non è necessario fare qualsiasi cosa, a meno che non si vuole, per qualche ragione. Ad esempio, il seguente genera un numero casuale per ciascuna osservazione:

data one;
  set sashelp.class;
  rannum = ranuni(0);
run;

Se si vuole ciclare su variabili, poi ci sono gli array. Ad esempio, il seguente inizializza variabili, var1 a var10, con numeri casuali:

data one;
  array vars[1:10] var1-var10;
  do i = 1 to 10;
    vars[i] = ranuni(0);
  end;
run;

Il primo. e ultimo. bandiere vengono generati automaticamente quando si imposta un dato (ordinato) con una dichiarazione da parte. Un esempio:

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
*/
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top