La función monotonic de PROC SQL de SAS

Previamente he hablado en este blog de las ventajas que ofrece PROC SQL en SAS sobre otros métodos más propiamente SAS de realizar ciertas manipulaciones de datos. Existen no obstante cierto tipo de manipulaciones que exigen pasos data: gran parte de las que hacen uso de la variable automática n.

No obstante, existe una función no documentada de SAS que permite implementar con SQL muchas operaciones de este tipo: monotonic.

He aquí un ejemplo:

proc sql;
  create table results as
    select
      monotonic() as sequence,
      *,
      case
        when (monotonic()=1) then 'First'
        else 'Not First'
      end as text
    from sashelp.class
  ;
quit;

He aquí otro de mi factura para muestrear la cuarta parte de las observaciones de una tabla:

proc sql;
  create table muestreo as
    select *
    from sashelp.class
    where mod( monotonic(), 4 ) = 0
  ;
quit;

Estoy seguro de que mis lectores encontrarán otras aplicaciones. ¿Será que alguno querrá compartirlas a través de estas páginas, quizás, para ilustración de todos?