SAS 데이터 세트에서 조건부 반복을 어떻게 할 수 있습니까?

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

  •  05-09-2019
  •  | 
  •  

문제

SAS 데이터 세트에서 어떻게 반복을 할 수 있습니까? 예를 들어 첫 번째를 선택했습니다. 변수의. 특정 조건의 발생을 찾고 만족할 때 값을 설정하고 싶습니다.

도움이 되었습니까?

해결책

SAS 데이터 단계에는 관측치에 대한 내장 루프가 있습니다. 어떤 이유로 든 원하지 않는 한 일을 할 필요가 없습니다. 예를 들어, 다음은 각 관측에 대해 임의의 숫자를 생성합니다.

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

변수를 반복하려면 배열이 있습니다. 예를 들어, 다음은 변수를 var1에서 var10으로 초기화합니다.

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

첫번째. 그리고 마침내. 명령문으로 (정렬 된) 데이터를 설정하면 플래그가 자동으로 생성됩니다. An example:

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
*/
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top