/************************************************************ * display the first 10 observations, last 10 observations, * and 10 observations in the middle of a SAS data * * example: * %skim_data(sashelp.iris); * * Peng Zeng (Auburn University) * 12-12-2017 ************************************************************/ %macro skim_data(input_data); proc contents data = &input_data noprint out = input_data_contents; run; data _null_; set input_data_contents (obs = 1); call symput('input_data_nobs', nobs); run; proc print data = &input_data (obs = 10); run; proc print data = &input_data (obs = %sysevalf(&input_data_nobs / 2 + 5, ceil) firstobs = %sysevalf(&input_data_nobs / 2 - 4, ceil)); run; proc print data = &input_data (firstobs = %eval(&input_data_nobs - 9)); run; %mend skim_data; /************************************************************ * THE END ************************************************************/