En el Tip 23 habíamos presentado las variables macro que generan los usuarios.
En este nuevo Tip lo que haremos es mostrar la otra clase de variables macro: las variables macro automáticas.
Tan solo a modo de recordatorio, les mencionamos que En el Lenguaje de Macros podemos distinguir:
1) Variables macro
2) Funciones macro
3) Programas macro (o directamente 'macros') (en realidad las 'macros' son un concepto más amplio que 'programa', pero ya lo veremos en otro Tip)
Y dentro de las variables macro tenemos 2 clases:
1.1) Variables macro generadas por el usuario ---> ya las vimos en el Tip 23
1.2) Variables macro automáticas ---> son las que vamos a ver en este Tip 24
/*-------------------*/
/* inicio del código */
/*-------------------*/
/****************************************************************************/
/* Atención! */
/* Como vamos a trabajar con variables macro, es fundamental recordar que */
/* esta clase de variables guardan texto. */
/****************************************************************************/
/****************************************************************************/
/* Atención otra vez! */
/* No piensen en crear variables macro que comiencen con 'sys'; porque esta */
/* forma de iniciar una macro está reservada por SAS. */
/****************************************************************************/
/*----------------------*/
/* Ejemplos: */
/*----------------------*/
/*--------------------------------------*/
/* Ejemplo 01: */
/* Variable macro automática: SYSDATE9 */
/*--------------------------------------*/
/************************************************************************************/
/* Devuelve la fecha en que se la sesión inició */
/* El formato del valor de la variable macro es DATE9. Muestra 2 dígitos para el */
/* día + 3 caracteres para el mes (en inglés) + 4 dígitos para el año. En total son */
/* 9 caracteres, por eso el '9' al final de la variable macro. */
/************************************************************************************/
/************************************************************************************/
/* Atención! Esta fecha no se actualiza cuando permanecemos en muestra sesión de */
/* SAS. Guarda la fecha del inicio de la sesión. */
/************************************************************************************/
%put &SYSDATE9;
/*--------------------------------------*/
/* Ejemplo 02: */
/* Variable macro automática: SYSDAY */
/*--------------------------------------*/
/********************************************************************************/
/* Devuelve el día de la semana en que comienza la sesión. En inglés, claro. */
/********************************************************************************/
%put &SYSDAY;
/*--------------------------------------*/
/* Ejemplo 03: */
/* Variable macro automática: SYSDSN */
/*--------------------------------------*/
/************************************************************************/
/* Contiene la librería y el nombre de la última tabla creada. */
/************************************************************************/
Data sasuser.aire;
set sashelp.air;
run;
%put &SYSDSN;
/*------------------------------------------*/
/* Ejemplo 04: */
/* Variable macro automática: SYSENCODING */
/*------------------------------------------*/
/************************************************************************/
/* Entrega el sistema de codificación de la sesión de SAS. */
/* Esto puede ser fundamental cuando cuando utilizamos programas */
/* de otros servidores o de diferentes sistemas operativos. */
/* Esos programas que fallan y no sabemos porqué --> porque pueden */
/* tener diferente sistema de codificación! */
/************************************************************************/
/************************************************************************/
/* Algunos ejemplos de sistemas de codificación: */
/* --> UTF-8 (8-bit Unicode Transformation Format) */
/* --> latin1 (ISO 8859-1) */
/* --> wlatin1 (Windows cp1252) */
/* --> latin2 (ISO/IEC 8859-2) */
/************************************************************************/
%put Es sistema de codificación de esta sesión es: &SYSENCODING;
/*------------------------------------------*/
/* Ejemplo 05: */
/* Variable macro automática: SYSLAST */
/*------------------------------------------*/
/************************************************************************/
/* Esta variable macro guarda el nombre de la última tabla creada. */
/* El formato será 'librería.tabla' (que es diferente a lo que guarda */
/* la variable macro SYSDSN del ejemplo 03). */
/************************************************************************/
Data sasuser.clase;
set sashelp.class;
run;
%put La tabla creada es: &SYSLAST;
/*--------------------------------------------------*/
/* Ejemplo 06: */
/* Variables macro automáticas: SYSSCP y SYSSCPL */
/*--------------------------------------------------*/
/****************************************************************************/
/* Estas 2 variables macro informan el sistema operativo y la versión. */
/****************************************************************************/
%put El sistema operativos es: &SYSSCP;
%put y la versión es: &SYSSCPL;
/*--------------------------------------*/
/* Ejemplo 07: */
/* Variable macro automática: SYSTIME */
/*--------------------------------------*/
/****************************************************************************/
/* Devuelve la hora de comienzo de la sesión. */
/* El valor de la hora se muestra con el formato TIME5. (o sea 2 dígitos */
/* para la hora y 2 dígitos para los minutos, separando hora y minutos */
/* con el símbolo ':'). */
/****************************************************************************/
/****************************************************************************/
/* Importante: No es la hora actual! No se confundan. */
/****************************************************************************/
%put Su sesión comenzó a las: &SYSTIME;
/*------------------------------------------*/
/* Ejemplo 08: */
/* Variable macro automática: SYSTIMEZONE */
/*------------------------------------------*/
/****************************************************************************/
/* Esta variable macro contiene la zona de tiempo local. */
/* Se utiliza cuando se trabaja con usuarios y servidores en distintos */
/* países, o en un país con diferentes zona de tiempo. */
/****************************************************************************/
%put &SYSTIMEZONE;
/*------------------------------------------*/
/* Ejemplo 09: */
/* Variable macro automática: SYSUSERID */
/*------------------------------------------*/
/************************************/
/* Muestra el ID del usuario. */
/************************************/
%put &SYSUSERID;
/*--------------------------------------------------------------*/
/* Ejemplo 10: */
/* Variables macro automáticas: SYSVER, SYSVLONG y SYSVLONG4 */
/*--------------------------------------------------------------*/
/********************************************************************************/
/* Estas 3 variables macro dan información sobre la versión de SAS que se */
/* está utilizando. */
/* Como es de suponer, tanto SYSVLONG como SYSVLONG4 son las que entregan */
/* más detalles. */
/* La única diferencia entre SYSVLONG y SYSVLONG4 se encuentra en el formato */
/* de los años. */
/********************************************************************************/
%put &SYSVER;
%put &SYSVLONG;
%put &SYSVLONG4;
/*------------------------------------------*/
/* Ejemplo 11: */
/* Variable macro automática: SYSNOBS */
/*------------------------------------------*/
/************************************************************************/
/* Guarda el número de observaciones de la última tabla creada. */
/* Pueden probar con el paso Data y con el proc SQL que están a */
/* continuación para ver el resultado. */
/************************************************************************/
/* Con el paso Data */
Data sasuser.clase;
set sashelp.class;
where Age < 12;
run;
%put Tabla de salida: &SYSLAST; /* ver ejemplo 05 */
%put Cantidad de filas de la tabla de salida: &SYSNOBS;
/* Con proc SQL */
proc sql;
create table prueba01 as
select *
from sashelp.classfit
where sex="F";
quit;
%put Tabla de salida: &SYSLAST; /* ver ejemplo 05 */
%put Cantidad de filas de la tabla de salida: &SYSNOBS;
/*---------------------*/
/* Fin de los ejemplos */
/*---------------------*/
/****************************************************************************/
/* Podemos ver todas las variables automáticas usando: */
/* %put _automatic_ */
/****************************************************************************/
%Put _automatic_;
/****************************************************************************/
/* También podemos ver todas las variables macro (automáticas + creadas por */
/* el usuario) usando: */
/* %put _all_ */
/****************************************************************************/
%Put _all_;
/*----------------*/
/* fin del código */
/*----------------*/
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.