Вы можете использовать оператор WHERE
в шагах DATA, а также, возможно, более полезно в шагах PROC.WHERE SAME AND
, который также, возможно, легче запомнить под другим именем WHERE ALSO
, позволит вам использовать несколько операторов для добавления дополнительных ограничений.
Это легко увидеть на примере, подобном:
proc means data=sashelp.class ;
where sex='M';
where also age > 12 ;
var height;
run;
, поскольку SAS будет выводить полученное условие поднабора в журнал.
1334 proc means data=sashelp.class ;
1335 where sex='M';
1336 where also age > 12 ;
NOTE: WHERE clause has been augmented.
1337 var height;
1338 run;
NOTE: Multiple concurrent threads will be used to summarize data.
NOTE: There were 6 observations read from the data set SASHELP.CLASS.
WHERE (sex='M') and (age>12);
Обратите внимание, что при использовании операторов WHERE
и WHERE ALSO
порядок имеет значение.
1339 proc means data=sashelp.class ;
1340 where also age > 12 ;
NOTE: WHERE clause has been augmented.
1341 where sex='M';
NOTE: WHERE clause has been replaced.
1342 var height;
1343 run;
NOTE: Multiple concurrent threads will be used to summarize data.
NOTE: There were 10 observations read from the data set SASHELP.CLASS.
WHERE sex='M';
Но вы всегда можете просто использовать WHERE ALSO
для всех утверждений, и тогда порядок не имеет значения.
1344 proc means data=sashelp.class ;
1345 where also age > 12 ;
NOTE: WHERE clause has been augmented.
1346 where also sex='M';
NOTE: WHERE clause has been augmented.
1347 var height;
1348 run;
NOTE: Multiple concurrent threads will be used to summarize data.
NOTE: There were 6 observations read from the data set SASHELP.CLASS.
WHERE (age>12) and (sex='M');