SAS Tutorial: Creación de las categorías con PROC FORMATO
28 de febrero 2008 por: Blink 7 Al realizar el análisis de datos en una cohorte de población, a menudo es conveniente para clasificar características puede tener muchos valores. Edad, nivel de ingresos y la tarjeta de puntuación de crédito son ejemplos de los atributos de la población que puede ser colocado en "cubos" y fácilmente analizados con base en categorías amplias (sin necesidad de recurrir a la regresión lineal o logística). Mientras que las variables pueden ser rápidamente codificados utilizando sentencias IF, procedimiento de SAS formato proporciona una solución más elegante y portátil.
Pre-Requisitos
- V9.x SAS o SAS Enterprise Guide 4.x
- Conocimientos básicos de Paso de datos de SAS
- Conocimientos básicos de cómo cargar y ejecutar programas SAS
- Conocimiento básico de cómo cargar y guardar datos de SAS conjuntos
- SAS acceso de lectura / escritura de espacio de archivo
Descargas
- Categorización del proyecto de archivo (por ejemplo, solo, contiene todos los programas)
- SAS Programa: CAT1
- SAS Programa: cat2
- SAS Conjunto de Datos: nameage (mover este conjunto de datos para su trabajo de directorio)
El Escenario

El conjunto de datos proporcionado contiene información básica sobre un grupo aleatorio de personas. Mirando el conjunto de datos, hay tres columnas que representan el nombre, apellido y edad de cada persona. Supongamos que algunos análisis de rendimiento se llevará a cabo en la población previstas - categorización por edad podría ser útil para las tendencias más exigentes.
Tome 1 - Categorización de la instrucción IF
Supongamos que desea clasificar a la edad de 10's: 10-19, 20-29, 30-39 y 40 +. Los datos de entrada se pueden cargar en el paso de datos SAS y ampliado mediante el uso de la SI para crear una variable de categorías. En concreto, podemos hacer lo siguiente:
- Crear un nuevo conjunto de datos, utilizando los datos proporcionados como la fuente de
- Cree una variable de la categoría
- Categorizar la edad, poniendo los resultados en la variable de la categoría
Abra la cat1.sas programa SAS (los que utilizan SAS Enterprise Guide 4 alternativamente puede abrir el proyecto de categorización de archivo y haga doble clic en el icono de la cat1 código de la ventana del diseñador del proyecto SAS).

Como se puede ver en la pantalla de arriba, el código crea un nuevo conjunto de datos llamada catv1 en el trabajo de la biblioteca.
- La entrada por defecto se establece en los datos proporcionados por nameage establecer este tutorial
- A 16-variable personaje llamado age_category se ha creado para celebrar la clasificación literal de la variable edad
- Un if / elseif estructura condicional se usa para calcular la clasificación cubo para la edad del participante en cada registro de
Después del paso DATA, una impresión PROC se expide para mostrar la salida de la catv1

Cat1 ejecutando el código debería producir una salida como se muestra arriba
Take 2 - Categorización mediante Formatos personalizados
Uso de IF / ELSIF declaraciones son fáciles y probablemente suficiente si sólo han de clasificar una variable ... sabiendo que usted no usará la misma clasificación en otro fragmento de código cada vez o usar la misma clasificación con diferentes variables. Si usted no puede garantizar estas condiciones, entonces usted estará atrapado en el copiar y pegar código trampa. Cualquier "cambios" a la clasificación tendrá que ser reconfigurado de forma manual para cada variable en cada pieza de código - un tiempo y proceso propenso a errores.
Afortunadamente, SAS proporciona el procedimiento de formato, que puede ser usado para crear las categorizaciones de carácter centralizado o de entrada numérica. Ventajas de utilizar el procedimiento de formato son las siguientes:
- Formatos se pueden aplicar a cualquier número de variables en varios programas de SAS
- Los cambios en los formatos se aplicarán a cada variable que la próxima vez que su código de asignación se ejecuta
- La flexibilidad para integrar los formatos en el código del programa o crear en programas autocontenidos
- Los formatos pueden ser almacenados temporal o permanente en las bibliotecas SAS
Con esto en mente, vamos a rehacer el código, sustituyendo la estructura condicional con un procedimiento de formato. Abra el programa SAS cat2.sas para ver el código.

FORMATO El procedimiento comienza con una declaración del FORMATO PROC y termina con una declaración RUN (mayúsculas y minúsculas). Dentro de esta estructura de la declaración de valor se puede utilizar para definir un formato. Múltiples declaraciones de valores pueden ser emitidos en un procedimiento de formato.
En este caso hemos definido un formato llamado agecat. Este formato se convertirán en los valores de entrada numérico basado en texto categorías. (Nota: para convertir los valores de entrada de texto, coloque un $ delante del nombre de formato - $ agecat).
Los valores de entrada individual o rangos de valores de entrada se les asignan valores de formato a través de ecuaciones simples. En este caso, los rangos de valores de entrada (por ejemplo, 10-19) se asignan solo texto basado en los valores de formato.
La palabra clave de alta significa el mayor valor posible en el conjunto de datos. Esta palabra clave es esencialmente un catch-all para valores por encima del inicio de la gama. Cuando se aplica a este formato de usuario, cualquier valor de entrada por encima de 40 se le asignará el valor con formato '40 + '. Del mismo modo, bajo la palabra clave puede ser usado para representar el menor valor posible de datos y podría ser utilizado en un fondo de capturar-toda categoría.
Nuestro formato definido por el usuario ahora puede aplicarse a cualquier variable numérica a través de la instrucción PUT. Como resultado de ello, el paso de los datos ya no requiere de complicadas instrucciones condicionales y pueden asignar valores a age_category clasifican en una sola línea.
Para demostrar la flexibilidad de los formatos definidos por el usuario, una nueva variable llamada age_in_5 también fue creado. Esta variable muestra qué categoría de edad de cada persona a pertenecer a 5 años a partir de ahora. Tenga en cuenta que la instrucción de asignación es idéntico al age_category la salvedad de que 5 años ha sido añadido a la edad antes de formatear.
Después del paso DATA, una impresión PROC se expide para mostrar la salida de la catv2

CAT2 ejecutando el código debería producir una salida como se muestra arriba









gracias hombre
GRACIAS, realmente bueno y útil
Gran! Justo lo que estaba buscando!