Как вычисление оператора работает в протоколе процесса? - PullRequest
0 голосов
/ 30 апреля 2019

Это основной вопрос.Я собираюсь применить if first.sex then Count + 1; Count + 2; к практике отчетов о процессах, поэтому я пишу код, подобный следующему:

Proc report data = sashelp.class;
  column name sex age height weight count;
  define name/display;
  define sex/group;
  define age/display;
  define height/display;
  define weight/display;
  define count/computed;
  compute before sex;
    cnt = cnt + 1;
  endcomp;
  compute count;
    cnt + 2;
    count = cnt;
  endcomp;
run;

Однако, это дает 5, а не 3, как я ожидал, на первом значении Count.

Я пытаюсь кодировать так:

proc sort data = sashelp.class out = test;
  by Sex Name;
run;

data test;
  set;
  by Sex;

  if first.Sex then Count + 1;
  Count + 2;
  if first.Sex then Count + 2;
run;

Это дает тот же результат, который мне не подходит.

Как я могу вычислить Count вотчет о работе, такой же как if first.sex then Count + 1; Count + 2; в шаге данных?

...