Copyright © 2006, SAS Institute Inc. All rights reserved. Techie Tips para mejorar tu código Arrays con SAS Marcel Almeida SAS BI Sr Consultant Pablo Fondevila.

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

2.1.1 Definición. Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes.
Programación Orientada a Objetos (con Java)
ESTRUCTURAS DE CONTROL
Programación de Computadores
ESTRUCTURA DE DECISION LOGICA
ALGORITMOS DE ORDENAMIENTO
Seminario de Actualización - Excel Avanzado y Macros
Desarrollo de Aplicaciones para Internet
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
Unidad 4: Análisis de algoritmos (parte II)
MANEJO DE ARRAYS EN C.
INFORMATICA I Arreglos 1 CLASE 17.
Teoría de lenguajes y compiladores
ESPACIOS VECTORIALES.
Vectores en java.
UNIDAD I Conceptos Básicos.
PROGRAMACION II.  Es un conjunto de datos no necesariamente del mismo tipo, los cuales se podrán manipular o realizar cualquier operación sobre cada.
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
LÓGICA - DECISIONES Los valores lógicos: constantes, variables y expresiones lógicas, permiten controlar la ejecución de las sentencias de un programa.
Programación en Matlab
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
Clases 4 Pruebas de Hipótesis
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
ESTRUCTURA DE DATOS EN JAVA
Clase 10: Estructuras de datos y arreglos.
Microsoft© Visual Basic . Net.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
El lenguaje de programación C - Vectores y matrices -
Aplicación de estructuras de datos
Programación I Arreglos II- Matrices.
75.40 Algoritmos y Programación I
Fundamentos de Programación
Programación en C para electrónicos
Clase 6 COMPUTACION 2009 C lase 8 Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Integer Real Char Boolean String Archivos Registros.
Arreglos y comunicación Usuario
Vectores y Matrices.
MARTÍNEZ VALLEJO ISAMAR SCANDA MONTOYA MENDOZA DIANA RUBI GRUPO: 304.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Lic. Carla Aguirre Montalvo
ARREGLOS BIDIMENSIONALES MATRICES Son un espacio de almacenamiento continuo, que contiene una serie de elementos del mismo tipo de datos. Desde el punto.
CONSTANTES DENTRO DE UN CÁLCULO O EN LOS PASOS PARA SOLUCIONAR UN PROBLEMA, EXISTIRÁN VALORES QUE NUNCA VAN A CAMBIAR Y SE LOS CONOCE COMO CONSTANTES.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
ARRAYS Y COLECCIONES DE DATOS. ARRAYS Arrays – Matriz – Vector Elemento del lenguaje que nos permite agrupar un conjunto de valores del mismo tipo, y.
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
Expositor Lic. José Aragón Tapia. Introducción a la programación. Datos y expresiones, Operadores. Algoritmos, concepto, características. Definición de.
1 Estructuras de Datos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006.
2. UNA INTRODUCCION AL MINITAB M.A. NARCISO TORRES FLORES.
Copyright © 2007, SAS Institute Inc. All rights reserved. Desafíos y Soluciones en la Gestión Presupuestaria Junio 2009 Pablo Fondevila
MODELOS LINEALES ALGEBRA DE MATRICES Uso de MatLab.
Estructuras de Decisión en Visual Basic 6.0
FUNDAMENTOS DE PROGRAMACIÓN VARIABLES, CONSTANTES Y TIPOS DE DATOS EN C.
Arreglos Scilab J. D. Pope S. ITD.
Copyright © 2009, SAS Institute Inc. All rights reserved. SAS Para Principiantes Primer Encuentro - Analytics Cono Sur Guido Sagasti - Consultor.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 5.
PROGRAMA DE FORTALECIMIENTO INSTITUCIONAL LOCAL ESCUELAS DE LIDERAZGO Y/O GOBIERNO NIVEL 5 - MÓDULO 3 MARCO LÓGICO.
JOSE ALBERTO JIMENEZ JIMENEZ KATTY HIPOLITO. 7.1 INTRODUCCION AL LENGUAJE EMSAMBLADOR.
Clase II Estructuras dinámicas (TAD) Listas Enlazadas. ¿A que llamamos estructuras dinámicas? ¿Por qué son necesarias? Ventajas y Desventajas que tendremos.
Diagramas UML Richard Mora Republica Bolivariana de Venezuela Ministerio del poder popular para la educación I.U.T. Antonio José de Sucre Barquisimeto,
Indicadores clave de rendimiento (KPI) en modelos multidimensionales Diciembre 2015 Recopilo: Alberto Espinosa González.
Procesamiento de Datos Cód.: 330 Facilitadora: Beatriz González Profesor: Oscar Núñez Universidad Nacional Abierta Vicerrectorado Académico Área: Ingeniería.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
Funciones Herramienta potente para la modelación matemática Autor. Dr. José Luis Díaz Gómez Departamento de Matemáticas Universidad de Sonora.
Programación de Algoritmos Autor: Luis Eduardo Villavicencio Prof.: Ing. Danilo Jaramillo.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 7 – Funciones y Procedimientos.
 Do- While y Do- Until Las instrucciones Do-while y Do-until permiten repetir un bloque de código mientras cierta condición sea True o hasta que cierta.
“Estructuras de datos”
DML Transact SQL Sesión III Agrupando y resumiendo información.
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Unidad V: Estatutos en Basic De control o selección if. De ciclos: Do, for, while. Otros estatutos. Solución de problemas aplicando estatutos de control.
Transcripción de la presentación:

Copyright © 2006, SAS Institute Inc. All rights reserved. Techie Tips para mejorar tu código Arrays con SAS Marcel Almeida SAS BI Sr Consultant Pablo Fondevila Coordinador Comunidad SAS

Copyright © 2006, SAS Institute Inc. All rights reserved. Agenda  Comunidad Analytics Cono Sur  Conceptos Básicos  Cuando los usamos?  Ejemplos del Uso  Ejercicio: Caso de Uso Real  Links a bibliografía  Sorteo: Libro Editorial SAS

Copyright © 2006, SAS Institute Inc. All rights reserved. Objetivos: Acelerar crecimiento profesional Promover el uso metódico e inteligente de información Registración: Grupo “Programadores SAS”

Copyright © 2006, SAS Institute Inc. All rights reserved. Objetivos Taller  Facilitar un espacio mensual (gratuito) de intercambio networking y profundización  Acompañados de especialistas de dominio  Hoy: “Uso de Arrays en SAS”

Copyright © 2006, SAS Institute Inc. All rights reserved. Ronda de Presentación y Expectativas  Nombre  Empresa  Nivel de experiencia Inicial intermedio/avanzado  Qué me espero llevar de este taller?

Copyright © 2006, SAS Institute Inc. All rights reserved. Que es un Array?  La mayoría de los lenguajes de Programación tienen alguna notación para los valores relacionados con la repetición o otros valores relacionados. Esas estructuras son conocidas como matrices, vectores, dimensiones, tablas, o en lenguaje SAS, ARRAYS.  La definición de SAS para ARRAYS es un conjunto de variables relacionadas que están definidos en un Data Step.  Todos los elementos del ARRAY deben ser del mismo tipo siendo: CARÁCTERES o NUMÉRICOS.

Copyright © 2006, SAS Institute Inc. All rights reserved. Por qué necesitamos Arrays?  El uso de ARRAYS puede ayudarnos a simplificar los procesos. Podemos utilizar ARRAYS para ayudar a leer y analizar datos repetitivos con un mínimo de codificación.  Por ejemplo, supongamos que tenemos un archivo en el que cada registro contiene 24 valores con la temperatura para cada hora del día. Estas temperaturas están en grados Fahrenheit y tenemos que convertir a 24 valores de grados Celsius. Sin matrices tenemos que repetir el mismo cálculo para todas las 24 variables de temperatura:

Copyright © 2006, SAS Institute Inc. All rights reserved. Por qué necesitamos Arrays? Data Temperatura; InFile....; input....; celsius_temp1 = 5/9(temp1 – 32); celsius_temp2 = 5/9(temp2 – 32);... celsius_temp24 = 5/9(temp24 – 32); Run;

Copyright © 2006, SAS Institute Inc. All rights reserved. Por qué necesitamos Arrays?  Una alternativa es definir los ARRAYS y el uso de un LOOP para procesar el cálculo para todas las variables: Data Temperatura; InFile...; InPut...; ARRAY temperature_array {24} temp1-temp24; ARRAY celsius_array {24} celsius_temp1-celsius_temp24; Do i = 1 To 24; celsius_array{i} = 5/9(temperature_array{i} – 32); End; Run;

Copyright © 2006, SAS Institute Inc. All rights reserved. Conceptos Básicos  Las matrices de SAS son diferentes de las matrices en otros lenguajes.  La diferencia de los ARRAYS de otras lenguajes y la de SAS es que los elementos no necesitan ser de la misma longitud.  Matrices SAS son otra forma de agrupar temporariamente y referenciarse a las variables de SAS.  Una matriz de SAS no es una nueva estructura de datos, el nombre de la matriz no es una variable, y las matrices no definen variables adicionales.  Más bien, una matriz SAS proporciona un nombre para hacer referencia a un grupo de variables.

Copyright © 2006, SAS Institute Inc. All rights reserved. Conceptos Básicos  ARRAY array-name {n} array-elements ;  Las declaraciones ARRAY ofrecen la siguiente información acerca de la matriz SAS:  array-name – Cualquier nombre valido SAS  n – Numero de elementos del ARRAY  $ - Indica si los elementos dentro de la matriz son variables de tipo de carácter  length – Una longitud común para los elementos del array  array-elements – Lista de variables de SAS para formar parte de la matriz  initial-values – Proporciona los valores iniciales de cada uno de los elementos de la matriz

Copyright © 2006, SAS Institute Inc. All rights reserved. Tipos de Arrays  Unidimensionales  Multidimensionales  Temporales

Copyright © 2006, SAS Institute Inc. All rights reserved. Tipos de Arrays Arrays Unidimensionales  Un ARRAY simple puede ser creado cuando las variables agrupadas conceptualmente aparecen como una sola fila. Esto se conoce como una matriz unidimensional. Dentro del Program Data Vector (PDV) la estructura de variables se puede visualizar como: temperature_array Temperature Variables  La sentencia para definir este ARRAY seria:  array temperature_array {24} temp1 – temp24;  La matriz cuenta con 24 elementos para las variables TEMP1 a TEMP24. Cuando los elementos de la matriz se usan en los Data Steps, el nombre de la matriz y el número del elemento ira referenciarlos. La referencia al noveno elemento en la matriz de temperatura es: temperature_array{9} {1}{2}{3}{4}{5}…{24} temp1Temp2temp3temp4temp5…temp24

Copyright © 2006, SAS Institute Inc. All rights reserved.  Una matriz más compleja puede ser creada en forma de una matriz multidimensional. Matrices Multidimensionales pueden ser creadas en 2 o más dimensiones. Conceptualmente una matriz con 2 dimensiones se parece a una tabla con filas y columnas. Dentro del Program Data Vector (PDV) la estructura de variables se puede visualizar como :  La sentencia para definir este ARRAY seria :  array sale_array {2, 12} sales1-sales12 exp1-exp12; Tipos de Arrays Arrays MultiDimensionales 2nd Dimension SALE_ARRAY {r,1}{r,2}{r,3}{r,4}...{r,12} 1er Dimension Variables Ventas{1,c}SALES1SALES2SALES3SALES4...SALES12 Variables Costo{2,c}EXP1EXP2EXP3EXP4...EXP12

Copyright © 2006, SAS Institute Inc. All rights reserved.  Un ARRAY temporal es una matriz que solo existe durante el Data Step donde se ha definido. Una matriz temporal es útil para almacenar valores constantes, que se utilizan en los cálculos. En una matriz temporal no hay variables correspondientes a identificar los elementos de la matriz. Los elementos son definidos por la palabra clave _TEMPORARY_.  Cuando se utiliza la palabra clave _TEMPORARY_ una lista de elementos de datos temporal se crea en el Program Data Vector (PDV). Estos elementos sólo existen en el PDV y son similares a los pseudo-variables.  La sentencia para definir este ARRAY seria:  array rate {6} _temporary_ ( ); Tipos de Arrays Arrays Temporales Array{1}{2}{3}{4}{5}{6} Variables Valores

Copyright © 2006, SAS Institute Inc. All rights reserved.  Estamos ahora en condiciones de aplicar los valores constantes que se han definidos en la matriz. Por ejemplo: cuando un cliente está en mora en el pago de sus cuentas, se aplica una sanción. El importe de la sanción depende del número de meses que la cuenta está en mora. Sin matriz este procesamiento IF-ELSE serían necesarios para completar el cálculo: if month_delinquent eq 1 then balance = balance + (balance * 0.05); else if month_delinquent eq 2 then balance = balance + (balance * 0.08); else if month_delinquent eq 3 then balance = balance + (balance * 0.12); else if month_delinquent eq 4 then balance = balance + (balance * 0.20); else if month_delinquent eq 5 then balance = balance + (balance * 0.27); else if month_delinquent eq 6 then balance = balance + (balance * 0.35); Tipos de Arrays Arrays Temporales

Copyright © 2006, SAS Institute Inc. All rights reserved.  Al colocar la sanción a una matriz temporal, el código para calcular el nuevo valor puede ser simplificado.  Las sanciónes han sido almacenados en la matriz temporal RATE. El nuevo saldo de la cuenta con la pena ahora puede ser calculado como: array rate {6} _temporary_ ( ); if month_delinquent ge 1 and month_delinquent le 6 then balance = balance + (balance * rate{month_delinquent}); Tipos de Arrays Arrays Temporales  Además de simplificar el código, el uso de la matriz temporal también mejora el tiempo de ejecución.

Copyright © 2006, SAS Institute Inc. All rights reserved. Cuándo los usamos?  Tiene sentido utilizar matrices, cuando hay valores repetitivos que están relacionados y el programador necesita recorrer la mayoría de ellos. La combinación de arrays y loops en el paso de los datos es un increíble poder de la programación.  El hecho de que las variables en la matriz no necesariamente están relacionadas o incluso contiguas hace aún más conveniente de utilizar.

Copyright © 2006, SAS Institute Inc. All rights reserved. Ejemplos del Uso Utilizando SAS para crear nombres de Variables  array temp {4}; Este array crea las variables temp1, temp2, temp3 y temp4.

Copyright © 2006, SAS Institute Inc. All rights reserved. Ejemplos del Uso Utilizando SAS para crear nombres de Variables  array temp{2:4}; Este ejemplo debería ser igual al anterior si 1 fuera el valor mas bajo, pero el array de este ejemplo empieza con 2, o sea, crea las variables temp2, temp3 y temp4.

Copyright © 2006, SAS Institute Inc. All rights reserved. Ejemplos del Uso Cálculos Repetitivos Este código es utilizado para calcular el bonos mensual de los empleados de una empresa X. array bonus {12} mes1-mes12; do j=1 to 12; bonus{j}=bonus{j}*.20; end;

Copyright © 2006, SAS Institute Inc. All rights reserved. Ejemplos del Uso Creando Variables con un Array Utilizando el código anterior vamos a crear una variable de bonos mensual. array bonus {12} mes1-mes12; array Percent{12}; do j=1 to 12; bonus{j}=bonus{j}*.20; Percent{j}=bonus{j}/5000; end;

Copyright © 2006, SAS Institute Inc. All rights reserved. Caso de Uso

Copyright © 2006, SAS Institute Inc. All rights reserved. Otros Tips _NUMERIC_ - Cuando todas las variables numéricas van a ser utilizadas como elementos del Array _CHARACTER_ - Cuando todas las variables carácter van a ser utilizadas como elementos del Array _ALL_ - Cuando todas variables del DataSet van a ser utilizadas como elementos del Array y las variables son del mismo tipo. DIM(ARRAY-NAME) – Tiene como retorno la cantidad de elementos de un Array

Copyright © 2006, SAS Institute Inc. All rights reserved. Links a Bibliografía

Copyright © 2006, SAS Institute Inc. All rights reserved. SORTEO!!!

Copyright © 2006, SAS Institute Inc. All rights reserved. Cierre de expectativas, próximos pasos  Presentación y foro de discusión en  Registrarse y unirse a grupo “Programadores SAS”

Copyright © 2006, SAS Institute Inc. All rights reserved. Cursos Programación  Básico: 1 a 3 Septiembre  Técnicas de Manipulación de Datos: 20 a 22 Septiembre  Técnicas Avanzadas y Eficiencia: 26 a 28 Septiembre

Copyright © 2006, SAS Institute Inc. All rights reserved. Anexo Site: Analytics Cono Sur

Copyright © 2006, SAS Institute Inc. All rights reserved. Anexo

Copyright © 2006, SAS Institute Inc. All rights reserved.