Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
INTERMEDIO
Giampaolo Orlandoni M. J Josefa f R Ramoni i P P. orlandoni@yahoo.com orlandoni@yahoo com orlandon@ula.ve
Instituto de Estadstica Aplicada Universidad de Los Andes Mrida. Venezuela
ARRAY SAS
1. Definicin de ARRAY en SAS 2. Clasificacin de Arrays 3 Ejemplos y Aplicaciones 3. 4. Array y Proc Transpose
ARRAYS: Arreglos SAS Arreglo: conjunto de variables del mismo tipo, agrupadas bajo un nico identificador. Cada una de las variables o elementos del arreglo se referencia mediante un ndice que representa la posicin del mismo dentro del arreglo. Clasificacin de arreglos en SAS de acuerdo a la forma de acceso: Arreglos A l con subndice b di explcito l it Arreglos con subndice implcito
n: indica el nmero de elementos del arreglo, arreglo se puede omitir o colocar asterisco para eliminar la enumeracin en los elementos. $: $ para elementos l t d tipo de ti carcter. t longitud: define longitud comn para todos los elementos. elementos: variables declaradas del data set que sustituyen a los elementos del arreglo. valores iniciales: para crear variables o elementos con valores iniciales.
ARRAY A{12} ENE--DIC; Se crea un arreglo de 12 elementos donde A[1] corresponde a ENE, A[2] corresponde a FEB, etc.
2-Si
arreglo se corresponde con el nmero de variables definidas: (desde MES1 A MES12 hay 12 variables).
se
omite
2_1_Array_EjemplosIntrod.sas
Ejemplo Arrays.
sas2\2_2_Array_Dummy.sas 2\2 2 A D
Mtodo Array:
DATA DUMMY2 (Drop = i);
DO i = 1 to dim(A);
elementos: variables declaradas del data set que sustituyen a los elementos del arreglo.
sas2\2-EJ4_ArrayLongitudinalEstable.sas
Ejemplo.
Data Establ(keep=idno ( p g grupo p x1-x8) ) EstbTmp(keep=idno grupo mes dep); Set longitudinal; idno=_n_;
array xarr {8} x1-x8; do i=1 to 8; if xarr{i}=-9 then xarr{i}=. ; mes i; mes=i; dep=xarr{i}; p EstbMes; ; output end; output Establ;
run;
EJ5-CREACION VARIABLES INDICADORAS (DUMMY) Construir variables indicadoras correspondientes a la variable regin con la siguiente informacin: regin, data region ; input reg @@ ; datalines ; 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 ; Proc print data=region; Run;
Do i=1 to 5; if dvar{i}=. then dvar{i}=0 ; region coincide con el indice i; drop i; end ; proc sort; by reg ; proc print ; run ;
** Hacer el valor de la variable dvar=1 si el valor de
45.50 45 50 64.00 76.00 54.00 49.00 78.00 45.00 43 00 43.00 29.98 36.00
78.00 78 00 54.00 32.00 50.00 67.00 86.00 95.00 65 13 65.13 32.87 21.54
45.00 45 00 50.00 49.00 40.00 63.00 67.00 32.00 45 00 45.00 24.00 43.00
12.00 12 00 18.00 25.00 17.00 38.00 14.00 26.00 12 00 12.00 15.00 24.00
35.00 35 00 30.00 29.99 24.00 42.00 19.40 18.95 32 00 32.00 26.00 29.65
Datos: tarifas fuera de estacin de 10 hoteles. Calcular las tarifas en estacin (25% ms caras) Usar arreglos. arreglos
data TarifaEst(drop=i); set hotel(drop=hotel); array tar1{6} g1-g6; array tar2{6} est1 - est6; do i=1 to 6; tar2{i} = tar1{i}*1.25; end; d format g1 - g6 est1 - est6 comma7.2;
Obs 1 2 3 4 5 6 7 8 9 G1 G2 G3 78.00 54.00 32 00 32.00 50.00 67.00 86.00 95.00 65.13 32.87 21.54 G4 45.00 50.00 49 00 49.00 40.00 63.00 67.00 32.00 45.00 24.00 43.00 G5 12.00 18.00 25 00 25.00 17.00 38.00 14.00 26.00 12.00 15.00 24.00 G6 35.00 30.00 29 99 29.99 24.00 42.00 19.40 18.95 32.00 26.00 29.65 est1 est2 est3 97.50 67.50 40 00 40.00 62.50 83.75 165.89 45.50 215.32 64.00 178 90 76.00 178.90 76 00 210.78 54.00 189.87 49.00 312.15 78.00 197.12 45.00 240.98 43.00 312.10 29.98 207.36 56.88 269.15 80.00 223 63 95.00 223.63 95 00 263.48 67.50 237.34 61.25 390.19 97.50 246.40 56.25 301.23 53.75 390.13 37.48 234.98 45.00
run;
est4 56.25 62.50 61 25 61.25 50.00 78.75 est5 15.00 22.50 31 25 31.25 21.25 47.50 17.50 32.50 15.00 18.75 30.00 est6 43.75 37.50 37 49 37.49 30.00 52.50 24.25 23.69 40.00 32.50 37.06
107.50 83.75 118.75 40.00 81.41 41.09 26.93 56.25 30.00 53.75
10 187.98 36.00
presupuestados
tarifas
data Presupuesto (drop= i); set hotel (drop=hotel); array presup{6} _temporary_ (175,75,25,35,25,30); array tar1{*} g1 - g6; array diff{6}; diff{6} do i=1 to dim(tar1); diff{i} = presup{i} - tar1{i}; end; run;
set GastoHotel; num = input(substr(hotel,6),2.); input(substr(hotel 6) 2 ); tax1 = impuesto{num,1}; tax2 = impuesto{num,2}; total = sum(of g1 g1-g6,tax1,tax2); g6 tax1 tax2); run;