La opción nobs=
de una declaración set
puede darle el número de observaciones. Cuando se compila el paso de datos, se escanea la porción de encabezado de los conjuntos de datos de entrada, por lo que ni siquiera tiene que ejecutar la instrucción set
para obtener el número de observaciones. Por ejemplo, los siguientes informes 2 como se esperaba:
/* a test data set with two observations and no vars */
data two;
output;
output;
run;
data _null_;
if 0 then set two nobs=nobs;
put nobs=;
run;
/* on log
nobs=2
*/
La opción end=
establece un indicador cuando la última observación (para la declaración set
) se lee en
conjunto de datos Un SAS, sin embargo, puede ser. un archivo de datos SAS o una vista SAS. En el caso de este último, el número de observaciones puede no conocerse ni en tiempo de compilación ni en tiempo de ejecución.
data subclass/view=subclass;
set sashelp.class;
where sex = symget("sex");
run;
%let sex=F;
data girls;
set subclass end=end nobs=nobs;
put name= nobs= end=;
run;
/* on log
Name=Alice nobs=9.0071993E15 end=0
Name=Barbara nobs=9.0071993E15 end=0
Name=Carol nobs=9.0071993E15 end=0
Name=Jane nobs=9.0071993E15 end=0
Name=Janet nobs=9.0071993E15 end=0
Name=Joyce nobs=9.0071993E15 end=0
Name=Judy nobs=9.0071993E15 end=0
Name=Louise nobs=9.0071993E15 end=0
Name=Mary nobs=9.0071993E15 end=1
*/
Gracias por la multitud de opciones aquí, terminé yendo con la opción END por ahora. Genial para ver una gran variedad de formas de hacer esto :) – chucknelson