Buscar..


Introducción

El uso de Variables Macro en sus programas SAS es una funcionalidad básica con la que todo programador de SAS debe estar familiarizado. El uso de variables de macro puede ayudarlo a mantener su código simple y genérico. El código genérico es un código reutilizable.

Usando% LET

Describiría a% LET como la forma más sencilla de crear una variable de macro en SAS.

%LET variableName = variableValue;

Ahora, en cualquier lugar que use &variableName , se resolverá a variableValue .

NOTA: es posible que desee considerar que variableValue por sí solo puede traerle errores de sintaxis, dependiendo de cuál es el valor y cómo se usa. Por ejemplo, si es una fecha y la está utilizando en el DÓNDE de una instrucción PROC SQL, deberá escribirse como "&variableName"d para que funcione correctamente.

Utilizando PROC SQL

El uso de PROC SQL es una buena manera de obtener resultados rápidos de una tabla y convertirlos en variables. Por lo general, encuentro que cuando quiero obtener un recuento de registros que acabo de cargar en una tabla, puedo hacer que ese recuento se convierta en una variable con una rápida llamada PROC SQL.

PROC SQL;
SELECT
    COUNT(*) INTO:aVariable
FROM
    MyTable

;QUIT;

En el ejemplo anterior, aVariable representará cuántos registros existen en MyTable .

También puede utilizar PROC SQL para crear múltiples variables de macro.

PROC SQL;
SELECT
    a,
    b,
    c INTO:aVariable, :bVariable, :cVariable
FROM
    MyTable


;QUIT;

En el ejemplo anterior, las variables creadas en la instrucción INTO coincidirán con las columnas extraídas en el orden en que se devuelven desde la instrucción SELECT. Sin embargo, solo la primera fila de resultados se utilizará para llenar esas 3 variables.

Si desea almacenar más de una fila y está en la versión 6.11 o posterior, utilice el siguiente ejemplo:

PROC SQL;
    SELECT DISTINCT
        a,
        b,
        c INTO :aVariable1 - :aVariable5, 
               :bVariable1 - :bVariable5,
               :cVariable1 - :cVariable5
    FROM
        MyTable
;QUIT;

Las palabras clave THROUGH y THRU pueden utilizarse en lugar del guión -

Usando Call Symput () en un paso de DATA

DATA _null_;
            CALL SYMPUT('testVariable','testValueText');
;RUN;

En el ejemplo anterior, %PUT &testVariable; se resolverá a testvalueText .

Puede encontrar la necesidad de formatear su variable dentro de la llamada SYMPUT ().

DATA _null_;
            CALL SYMPUT('testDate',COMPRESS(PUT(today(),date9.)));
;RUN;

En el ejemplo anterior, %PUT &testDate; se resolverá a 10MAR2017



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow