如何在SAS中正确使用while循环

时间:2018-08-23 18:47:12

标签: while-loop sas

我正在尝试编写一个while循环来计算有多少学生符合特定条件,即他们年龄在10-15岁之间,并且他们的得分高于50。在我的数据集中,我有学生的得分及其出生日期(年月日)。

这就是我尝试设置的方式。我已经读到,只要我知道生日,函数INTICK()就应该能够计算出年龄:

data qualified;
set students;
DO i=0 UNTIL (10=<INTICK('Year', dob, today())=<15 & Ejection_fraction>50) i++;

proc print data=qualified

我没有打印计数。

1 个答案:

答案 0 :(得分:2)

SAS自动为您遍历记录,因此您无需编写自己的循环。该循环可以让您执行其他操作,例如遍历变量,但是如果它是记录,那么您在追求什么呢? SAS为您做到这一点。

通常,您只需用proc freq或类似的数字来计算它们。

proc freq data=students;
  where 10<=INTCK('Year', dob, today())<=15 and Ejection_fraction>50;
run;

或者您可以在数据步骤中创建数据集。

data qualified;
  set students;
  where 10=<INTCK('Year', dob, today())=<15 & Ejection_fraction>50;
run;

在SAS中很少遍历记录(行)。