Programación SAS: ¡aprenda a codificar en SAS!



Este blog sobre programación SAS le presenta los conceptos de programación SAS y le ayuda a comprender los diversos fundamentos de SAS en detalle con ejemplos.

En este blog, le presentaré algunos de los conceptos importantes de la programación SAS. Antes de comenzar, es importante que se familiarice con SAS. Mi blog anterior sobre SAS Tutorial lo ayudará a comprender SAS, sus aplicaciones y lo ayudará a instalar SAS University Edition, que estaríamos usando aquí como un entorno de programación. ¿Se pregunta cuáles son las habilidades que debe dominar este año? Además, si planea ingresar a Data Analytics, es una de las mejores formas de comenzar con lo mismo.

¡La Guía de Carreras Técnicas Edureka 2019 ya está disponible! Los puestos de trabajo más destacados, rutas de aprendizaje precisas, perspectivas de la industria y más en la guía. Descargar ahora.





Así que sin másretrasar,comencemos con la programación SAS, ¿de acuerdo?

Este blog lo ayudará a comprender los siguientes temas:



Antes de comenzar a codificar, me gustaría informarles algunos términos importantes que son importantes para la programación SAS.

Fundamentos de la programación SAS

SAS Windows

Las grandes organizaciones e institutos de formación prefieren utilizar SAS Windows. SAS Windows tiene muchas utilidades que ayudan a reducir el tiempo necesario para escribir códigos.

La siguiente imagen muestra las diferentes partes de SAS Windows.



SAS-Windows - Programación SAS - Edureka

  • Ventana de registro : Es una ventana de ejecución. Aquí puede comprobar la ejecución de su programa. También muestra errores, advertencias y notas.
  • Ventana de código :Esta ventana también se conoce como ventana del editor. Considérelo como un papel en blanco o un bloc de notas, donde puede escribir su código SAS.
  • Ventana de salida : Como sugiere el nombre, esta ventana muestra la salida del programa / código que escribe en el editor.
  • Ventana de resultados : Es un índice que enumera todos los resultados de los programas que se ejecutan en una sesión. Dado que contiene los resultados de una sesión en particular, si cierra el software y lo reinicia, la ventana de resultados estará vacía.
  • Explorar ventana : Contiene la lista de todas las bibliotecas del sistema. También puede explorar los archivos compatibles con el sistema aquí.

Algunas organizaciones usan Linux, sin embargo, sin una interfaz gráfica de usuario, debe escribir código para cada consulta. Por tanto, es un inconveniente de uso.

Conjuntos de datos SAS

Los conjuntos de datos SAS se denominan archivos de datos. Los archivos de datos están formados por filas y columnas. Las filas contienen observaciones y las columnas mantienenNombres de variables.

SAS Variables

SAS tiene dos tipos de variables:

  • Variables numéricas : Este es el tipo de variable predeterminado. Estas variables se utilizan en expresiones matemáticas.
  • Variables de carácter :Las variables de caracteres se utilizan para valores que no se utilizan en expresiones matemáticas.
    Se tratan como texto o cadenas. Una variable se convierte en una variable de carácter agregando un'$' Signal final del nombre de la variable.

Bibliotecas SAS

La biblioteca SAS es una colección de archivos SAS que se almacenan en la misma carpeta o directorio de su computadora.

  • Biblioteca temporal : En esta biblioteca, el conjunto de datos se elimina cuando finaliza la sesión SAS.
  • Biblioteca permanente : Los conjuntos de datos se guardan de forma permanente. Por lo tanto, están disponibles en todas las sesiones.

Los usuarios también pueden crear o definir una nueva biblioteca conocida como bibliotecas definidas por el usuario utilizando la palabra clave LIBNAME . Estas también son bibliotecas permanentes.

Programación SAS: Estructura de código SAS

La programación de SAS se basa en dos bloques de construcción:

  • Paso de datos : El paso DATA crea un conjunto de datos SAS y luego pasa los datos a un paso PROC
  • Paso PROC : El paso PROC procesa los datos

Un programa SAS debe seguir las reglas mencionadas a continuación:

  • Casi todos los códigos comenzarán con DATA o un PROC Step
  • Cada línea de código SAS termina con un punto y coma
  • Un código SAS termina con la palabra clave RUN o QUIT
  • Los códigos SAS no distinguen entre mayúsculas y minúsculas
  • Puede escribir un código en diferentes líneas o puede escribir varias declaraciones en una línea

Ahora que hemos visto algunas terminologías básicas, comencemos con la programación SAS con este código básico:

DATA Entrada de Employee_Info Emp_ID Emp_Name $ Emp_Vertical $ líneas de datos 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run

En el código anterior, creamos un conjunto de datos llamado Employee_Info. Tiene tres variables, una variable numérica como Emp_Id y dos variables de carácter como Emp_Name y Emp_Verticals. El comando Ejecutar muestra el conjunto de datos en la Ventana de salida.

La siguiente imagen muestra la salida del código mencionado anteriormente.

Suponga que desea ver el resultado en la vista de impresión, bueno, puede hacerlo utilizando un procedimiento PROC PRINT, el resto del código permanece igual.

DATA Entrada de Employee_Info Emp_ID Emp_Name $ Emp_Vertical $ líneas de datos 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Ejecutar PROC PRINT DATA = Employee_Info Ejecutar

La imagen de abajo muestra la salida del código anterior.

Acabamos de crear un conjunto de datos y entendemos cómo funciona el procedimiento PRINT. Ahora, tomemos el conjunto de datos anterior y usémoslo para más programación. Supongamos que queremos agregar la fecha de incorporación del empleado al conjunto de datos. Entonces creamos una variable llamada DOJ, la damos como entrada e imprimimos el resultado.

DATA Entrada de Employee_Info Emp_ID Emp_Name $ Emp_Vertical $ DOJ líneas de datos 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Ejecutar PROC PRINT DATA = Employee_Info Ejecutar

La siguiente imagen muestra la salida del código anterior. Es visible que se creó una variable, pero el valor de DOJ no se imprimió. En cambio, vemos que los puntos han reemplazado los valores de fecha.


¿Por qué pasó esto? Bueno, la variable DOJ no tiene el sufijo '$', lo que significa que, de forma predeterminada, SAS la leerá como una variable numérica. Pero, los datos que ingresamos tienen un carácter especial '/', por lo que no imprime el resultado, ya que no son datos puramente numéricos. Si comprueba la ventana de registro, verá un mensaje de error como 'datos no válidos para la variable DOJ'

Ahora, ¿cómo resolvemos este problema? Bueno, una forma de resolverlo es usando un sufijo '$' para la variable DOJ. Esto convertirá la variable DOJ en carácter y podrá imprimir valores de fecha. Hagamos los cambios en el código y veamos el resultado.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ $ líneas de datos 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09 / 2016 Ejecutar PROC PRINT DATA = Employee_Info Ejecutar

La pantalla de salida mostrará la siguiente salida.


Puede ver que los valores de los datos se muestran como fechas al convertir DOJ en carácter. Sin embargo, esta es una solución temporal. Déjame explicarte cómo

Bueno, imagina que un banco tiene un conjunto de datos similar. El conjunto de datos tiene detalles del titular de la cuenta como monto del préstamo, cuotas,yfecha de vencimiento de la cuota del préstamo. Imagínese, el titular ha incumplido su plazo para pagar una cuota y el banco quiere calcular el retraso. El banco deberá calcular la diferencia entre la fecha límite y la fecha actual.

Pero, si el conjunto de datos del banco tiene fechas en formato de caracteres, el banco no podrá realizar operaciones matemáticas en él. Este problema también puede afectar nuestro conjunto de datos. Entonces, ¿cómo resolvemos este problema?

El siguiente concepto le ayudará a superar este problema.

Informaciones y formatos en SAS

Es importante que comprenda bien este tema si quiere ser bueno en la programación SAS.Si puede recordar, mencioné anteriormente que SAS tiene dos tipos de variables estándar:

  • Numérico
  • Personaje

Cuando SAS encuentra variables no estándar, SAS arrojará un error o no obtendrá el resultado deseado. Para superar este problema, SAS utilizainformadosy formatos.

informado

Los informats se utilizan normalmente para leer o introducir datos de archivos externos o archivos planos (comoarchivos de texto o archivos secuenciales). El informat instruye a SAS sobre cómo leerdatos en variables SAS. SAS tiene tres tipos de Informats:carácter, numérico y fecha / hora. Los datos se nombran de acuerdo con lo siguienteestructura de sintaxis:

  • Character Informado: $ INFORMATw.
  • Informado numérico: INFORMATw.d
  • Fecha / hora informada: INFORMATw.

El '$' indica la información de un carácter. INFORMAT se refiere a los a veces opcionalesNombre de información de SAS. La 'w' indica el ancho (bytes o número de columnas) delvariable. La 'd' se utiliza para datos numéricos para especificar el número de dígitos a la derecha deel lugar decimal. Todos los datos deben contener un punto decimal (.) Para que SAS pueda
diferenciar un informat de una variable SAS.

Volvamos a nuestro código anterior y veamos si Date / Time Informat nos ayuda. Así que cambiemos el código en consecuencia y agreguemos un Informat de fecha de la siguiente manera:

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. líneas de datos 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Ejecutar PROC PRINT DATA = Employee_Info Ejecutar

La línea número 3 del código indica a SAS que lea la variable 'fecha de incorporación' (DOJ) usando la fecha
informat MMDDYYw. Para cada campo de fecha que ocupa 10 espacios, el calificador 'w.' Esestablecido en 10.

La salida del código se vería así.

El resultado muestra que todavía no tenemos el resultado deseado, en cambio, la columna DOJ contiene algunos valores numéricos y no las fechas que especificamos. Ahora, ¿por qué es eso? Bueno, una vez que se lee una fecha con una información de fecha, SAS almacena la fecha como un número. Eso significa que se lee como el número de días entre la fecha y el 1 de enero de 1960 (por ejemplo: 15/03/1994 se almacena como 12492).

La razón detrás de esto es que SAS tiene tres contadores separados que realizan un seguimiento de las fechas y la hora. Estos contadores de fechas comenzaron en cero el 1 de enero de 1960. Por lo tanto, las fechas anteriores al 1/1/1960 tienen valores negativos y cualquier fecha posterior tiene un valor positivo. Todos los días a la medianoche, el contador de fecha se incrementa en uno.

Una historia dice que los fundadores de SAS querían usar la fecha de nacimiento aproximada del sistema IBM 370 y eligieron el 1 de enero de 1960 como una aproximación fácil de recordar.

Ahora que conoce la razón por la que la columna DOJ mostró esos números, intentemos resolver este problema. Para superar este problema utilizamos Format.

cómo finalizar un programa en java

Formato

Los informats son las instrucciones para leer datos, mientras que los formatos son las instrucciones que se utilizan para mostrar odatos resultantes.Definir un formato para una variable es cómo le dice a SAS que muestre los valores en la variable. Los formatos se agrupan en las mismas tres clases que los datos (carácter, numérico y fecha-hora) y también siempre contienen un punto.

La forma general de una declaración de formato es:

  • FORMAT nombre-variable FORMAT-NAME.

Regresemos a nuestro código que tiene el conjunto de datos Employee_Info para ver si podemos mostrar la fecha correctamente usando el comando FORMAT.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. FORMATO DOJ ddmmyy10. líneas de datos 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Ejecutar PROC PRINT DATA = Employee_Info Ejecutar

Hemos utilizado el comando FORMAT en la línea número 4 en el código anterior. La siguiente pantalla de salida nos dará la salida deseada.

Hemos mostrado con éxito el conjunto de datos usando el comando de formato de fecha. Espero que haya entendido cómo utilizar el formato y la información.Sigamos adelante con nuestro blog de programación SAS y echemos un vistazo a otro concepto importante.

Bucles SAS

Mientras hacemos la programación SAS, podemos encontrarnos con situaciones en las que necesitamos ejecutar unabloque de código varias veces. Es inconveniente escribir el mismo conjunto de declaraciones una y otra vez. Aquí es donde los bucles entran en escena. En SAS, la instrucción Do se utiliza para implementar bucles. También se conoce como Do Loop. La siguiente imagen muestra elforma general de las sentencias Do loop en SAS.

Los siguientes son los tipos de bucles DO en SAS:

  • Índice : El bucle continúa desde el valor inicial hasta el valor final de la variable de índice.
  • Mientras : El bucle continúa mientras el Mientras la condición se vuelve falsa.
  • Hasta : El bucle continúa hasta que Hasta la condición se vuelve Verdadera.

Hacer bucle de índice

Usamos una variable de índice como valor inicial y final para Hacer bucle de índice . Las declaraciones SAS se ejecutan repetidamente hasta que la variable de índice alcanza su valor final.
Sintaxis:

Hacer indexvariable = initialvalue to finalvalue SAS declaraciones Fin

Echemos un vistazo al código de muestra para comprender Do Index Loop. En el siguiente código, VAR es la variable de índice.

DATA SampleLoop SUM = 0 Do VAR = 1 a 10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

Cuando ejecute el código anterior, obtendrá el siguiente resultado.

que es tostring en java

Hacer mientras bucle

los Hacer mientras El bucle utiliza una condición WHILE. Este bucle ejecuta el bloque de código cuando la condición es verdadera y sigue ejecutándolo hasta que la condición se vuelve falsa. Una vez que la condición se vuelve falsa, se termina el ciclo.

Sintaxis:

Do While (condición) sentencias SAS Fin

El siguiente código de muestra le ayudará a comprender el bucle DO WHILE.

DATA SampleLoop SUM = 0 VAR = 1 Do while (VAR<15) SUM = SUM + VAR VAR+1 END PROC PRINT DATA = SampleLoop Run 

El código anterior le dará la siguiente salida.

Hacer hasta bucle

El bucle Do until usa un Hasta Este bucle ejecuta el bloque de código cuando la condición es falsa y sigue ejecutándolo hasta que la condición se vuelve verdadera. Una vez que la condición se cumple, el ciclo finaliza.

Sintaxis:

Hacer hasta (condición) declaraciones SAS FIN

Echemos un vistazo al programa de muestra.

DATA SampleLoop SUM = 0 VAR = 1 Continuar hasta (VAR> 15) SUM = SUM + VAR VAR + 1 END PROC PRINT Ejecutar

El código tiene la siguiente salida.

Así hemos terminado el concepto de bucles en la programación SAS. Todos los temas que estudiamos hasta ahora han hablado de los conceptos básicos de la programación SAS en general.

Ahora echemos un vistazo a algunos procedimientos estadísticos. Estos procedimientos formarán una base para procedimientos analíticos.

Suscríbete a nuestro canal de youtube para recibir nuevas actualizaciones ..!

Procedimientos estadísticos básicos con SAS

PROC SIGNIFICA

Este procedimiento se utiliza para calcular la media aritmética y la desviación estándar. Para las personas que son nuevas en las estadísticas, puede resultarles difícil comprender estos términos. Entonces, antes de comenzar a codificar y usar este procedimiento. Intentaré explicar qué significan estos términos.

Comencemos con la media aritmética y veamos cómo se usa PROC MEANS en la programación SAS para calcularla.

Significado aritmetico

La suma del valor de las variables numéricas, dividido por el número de variables le da el significado aritmetico . También se conoce como media y es una medida de tendencia central. Una medida de tendencia central es un valor único que intenta describir un conjunto de datos identificando la posición central dentro de ese conjunto de datos.

En la programación SAS, usa PROC MEANS para calcular la media aritmética. Este procedimiento le permite encontrar la media de todas las variables o algunas variables de un conjunto de datos. También puede formar grupos y calcular la media de las variables específicas de ese grupo.

Sintaxis:

PROC MEANS DATA = DATASET Clase Variables Variables Var
  • Variables : Las variables en la sintaxis anterior indican variables del conjunto de datos cuya media se va a calcular.

Media de un conjunto de datos

Si tuproporcione solo el nombre del conjunto de datos sin ninguna variable, puede calcular la media de todas las variables en un conjunto de datos.

Echemos un vistazo a un código de muestra. He considerado un conjunto de datos SAS predefinido denominado 'coches'. El siguiente comando mostrará el conjunto de datos.

PROC PRINT data = sashelp.CARS Ejecutar

La siguiente imagen muestra la salida del código anterior.


Ahora usemos este código de conjunto de datos y calculemos la media de cada variable en el conjunto de datos'coches'.

PROC MEANS DATA = sashelp.CARS Media SUM MAXDEC = 2 Run

La imagen a continuación muestra la media de todas las variables en la configuración de datos hasta dos decimales.

Media de las variables seleccionadas

Al proporcionar los nombres en la opción Var, puede obtener la media de las variables especificadas. Consulte el código a continuación.

PROC MEANS DATA = sashelp.CARS significa SUM MAXDEC = 2 var caballos de fuerza cilindros Run

Media por clase

Puede encontrar la media de las variables numéricas organizándolas en grupos utilizandoalgún parámetro para agruparlos.Considere el siguiente código de muestra. Averigüemos la media de caballos de fuerza para diferentes grupos categorizados por las clases 'marca' y 'tipo' de diferentes automóviles.

PROC MEANS DATA = sashelp.CARS MEANS SUM MAXDEC = 2 class make type var horsepower Run

La siguiente imagen muestra la salida del código anterior.

Continuemos con nuestro blog de programación SAS y echemos un vistazo a otro concepto estadístico importante.

Desviación Estándar

La desviación estándar (SD) es una medida de cuán variados son los datos en un conjunto de datos dado. Matemáticamente, le dice qué tan cerca está cada punto de datos del valor medio de un conjunto de datos. Si el valor de la desviación estándar está cerca de 0, indica que los puntos de datos están muy cerca de la media del conjunto de datos y una desviación estándar alta indica que los puntos de datos están distribuidos en un amplio rango de valores.

En SAS, puede calcular el valor de la desviación estándar mediante dos procedimientos. Son:

  • PROC SIGNIFICA
  • ENCUESTAS

Desviación estándar usando PROC MEANS

Puede medir la desviación estándar utilizando medios proc, debe elegir el HORAS opción en el paso PROC. Mostrará los valores de la desviación estándar para cada variable numérica en el conjunto de datos.

Sintaxis:

PROC MEANS DATA = conjunto de datos STD

Considere este código de muestra, creemos otro conjunto de datos CARS1 a partir del conjunto de datos CARS en la biblioteca SASHELP. Para hacer esto, usaremos el procedimiento PROC SQL. Agrupemos los datos usando 'tipo' y 'marca' de automóviles y calculemos la desviación estándar para las variables seleccionadas usando la opción STD con el paso de medios PROC.

PROC SQL crea la tabla CARS1 como SELECCIONAR marca, tipo, caballos de fuerza, cilindros, peso DESDE SASHELP.CARS DONDE marca en ('Audi', 'BMW') RUN PROC MEANS DATA = CARS1 STD Run

El código anterior dará una desviación estándar para las variables seleccionadas. La siguiente imagen muestra la salida.

PROCESO DE ENCUESTAS

Este procedimiento se utiliza para medir la desviación estándar junto con algunas características avanzadas como medir la desviación estándar para variables categóricas y la varianza.

Sintaxis:

PROC SURVEYMEANS opciones estadístico-palabras clave Por variables Variables de clase Variables de var

A continuación se muestra la descripción de los parámetros utilizados:

  • Por se utiliza para indicar las variables utilizadas para crear grupos de observaciones.
  • Clase indica las variables utilizadas para las variables categóricas.
  • Dónde indica las variables para las que se calculará la DE.

Echemos un vistazo a este código de muestra que describe el uso del parámetro de clase, que crea las estadísticas para cada uno de los valores en la variable de clase.

PROC SURVEYMEANS DATA = CARS1 STD Tipo de clase Var tipo caballos de fuerza ods estadísticas de salida = rectángulo Ejecutar PROC PRINT DATA = rectángulo Ejecutar

Las imágenes a continuación muestran la salida del código anterior. Muestra la distribución de datos para la variable 'Caballos de fuerza' para un intervalo de confianza del 95%. (Intervalo de confianza significa un rango de valores definido de tal manera que existe una probabilidad específica de que el valor de un parámetro se encuentre dentro de él).

Entonces, eso nos lleva al final del blog de programación de SAS. Para cualquier duda o problema con el contenido del blog, déjelos en la sección de comentarios, los resolveré lo antes posible y les responderé.

Si desea aprender SAS y desarrollar una carrera en el dominio de la analítica, consulte nuestro que viene con capacitación en vivo dirigida por un instructor y experiencia en proyectos de la vida real. Esta capacitación lo ayudará a comprender SAS en profundidad y lo ayudará a dominar varios conceptos del lenguaje de programación SAS.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios y nos pondremos en contacto con usted.