Sunteți pe pagina 1din 11

4 Capitulo: Lectura y combinacin de datosSAS

Lectura y combinacin de datos SAS.


Sentencia SET La sentencia SET se utiliza para leer ficheros de datos en formato SAS. Sintaxis SET nombre_archivo; La sentencia SET lee los datos de un archivo SAS uno por uno, siguiendo dentro del paso DATA el mismo proceso iterativo que la sentencia INPUT. La nica diferencia es que la sentencia RETAIN no tiene efecto sobre las variables ledas con SET. Ejemplo: DATA nuevo; SET alumnos; RUN;

Crea el fichero temporal nuevo. Los datos del fichero SAS, alumnos se transfieren al fichero nuevo.

Concatenacin y unin de ficheros Hay diferentes comandos que permiten unir ficheros en SAS: Unin de ficheros: Sentencia SET. Opcin 1 SET nombre_archivo1 nombre_archivo2 nombre_archivoN: La sentencia SET escribe los casos de los diferentes ficheros secuencialmente. Primero lee y escribe los del fichero 1, despus escribe los casos del fichero 2 y as hasta terminar con los casos del fichero N. El nmero de casos del fichero resultante es la suma de los casos de los ficheros. Si hay alguna variable que no esta en alguno de los ficheros su valor se rellena con missing (.).

Statistical Analysis System Ejemplo 1 data uno_anyo; input a; cards; 1995 1996 1997 1998 1999 2000 ; data dos_anyo; input a; cards; 2001 2002 2003 2004 ; data total_anyo; set uno_anyo dos_anyo; proc print; run;
Obs 1 2 3 4 5 6 7 8 9 10 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 a

DATA

data uno_anyo; input a; cards; 1995 1996 1997 1998 1999 2000 ; data dos_anyo; input b; cards; 2001 2002 2003 2004 ; data total_anyo; set uno_anyo dos_anyo; proc print; run;
Obs 1 2 3 4 5 6 7 8 9 10 1995 1996 1997 1998 1999 2000 . . . . a . . . . . . 2001 2002 2003 200 b

data animal; input tipo $ animal $; cards; a pajaro b gato c perro d conejo ; data planta; input tipo $ planta $; cards; a palmera b cocotero c pino

1-

Statistical Analysis System d chopo e abeto ; data resultado; set animal planta; proc print; run;
Obs 1 2 3 4 5 6 7 8 9 tipo a b c d a b c d e anumal pajaro gato perro conejo palmera cocotero pino chopo abeto planta

DATA

Para aadir casos en ficheros que estn indexados por una o ms variables se utiliza la sentencia BY junto con SET. La sintaxis es: SET nombre_archivo1 nombre_archivo2 nombre_archivoN; BY variable de ordenacin; Ejemplo: Sean los dos ficheros siguientes,

Data A; Input patno source $ gende $; CARDS; 1 A male 3 A male ; RUN; Data B; Input patno source $ age; CARDS; 2 B 45 4 B 35 ; RUN; PROC SORT DATA=A; BY source; /* Ordena el fichero A por la variable source */

Data A; Input patno source $ gende $; CARDS; 1 A male 3 A male ; RUN; Data B; Input patno source $ age; CARDS; 2 B 45 4 B 35 ; RUN; PROC SORT DATA=A; BY source; /* Ordena el fichero A por la variable source */

2-

Statistical Analysis System RUN; PROC SORT DATA=B; BY source; /* Ordena el fichero B por la variable source */ RUN; DATA test1; SET B A; RUN; PROC PRINT DATA=test1; RUN;
Obs 1 2 3 4 patno 2 4 1 3 source B B A A age 45 35 . . gende

DATA RUN; PROC SORT DATA=B; BY source; /* Ordena el fichero B por la variable source */ RUN; DATA test1; SET B A;BY source; RUN; PROC PRINT DATA=test1; RUN;

Obs 1 2 3 4

patno 1 3 2 4

source A A B B

age . . 45 35

gende male male

male male

3-

Statistical Analysis System Sentencia SET. Opcin 2 Sintaxis SET nombre_archivo1; SET nombre_archivo2; . SET nombre_archivoN;

DATA

La forma de trabajar es la siguiente: 1. 2. 3. 4. 5. Lee el primer caso del fichero 1 Lee el primer caso del fichero 2 ............................................... Lee el primer caso del fichero N Escribe el primer caso del fichero final que tendr tantas variables como la suma de variables distintas de los ficheros que se unen 6. Continua leyendo casos hasta llegar al final del fichero con menos observaciones. 7. En esta opcin SET trabaja en paralelo. Ejemplo 1 data uno_anyo; input a; cards; 1995 1996 1997 1998 1999 2000 ; data dos_anyo; input b; cards; 2001 2002 2003 2004 ; data anyo2; set uno_anyo; set dos_anyo; proc print; run;
Obs 1 2 3 4 a 1995 1996 1997 1998 b 2001 2002 2003 2004

data animal; input tipo $ anumal $; cards; a pajaro b gato c perro d conejo ; data planta; input tipo $ planta $; cards; a palmera b cocotero c pino d chopo e abeto ; data resultado; set animal planta; proc print; run;
Obs 1 2 3 4 tipo a b c d anumal pajaro gato perro conejo planta palmera cocotero pino chopo

4-

Statistical Analysis System Ejemplo 2 data uno; input A B; cards; 2 1 3 4 ; data dos; input B C; cards; 6 9 7 5 2 7 ; data tres; set uno; set dos; proc print; run;
Obs 1 2 A 2 3 6 7 B 9 5 C

DATA

/* La variable B toma los valores del ltimo archivo aadido */

Ejemplo 3 data uno; input a b c @@; cards; 3 4 5 1 2 3 ; data dos; input a b d @@; cards; 7 8 9 6 5 4 ; data tres; set uno dos; proc print; run;
OBS 1 2 3 4 A 3 1 7 6 B 4 2 8 5 C 5 3 . . D . . 9 4

5-

Statistical Analysis System Ejemplo 4 data cuatro; set uno; set dos; proc print; run;
OBS A 1 2 B 7 6 C 8 5 D 5 3 9 4

DATA

Como regla general, la opcin 1 (set uno dos;) se utilizar para unir archivos con las mismas variables y distintos casos. El opcin 2 (set uno;set dos;) se utilizar para unir archivos con los mismos casos, y distintas variables. Sentencia MERGE.

Sintaxis
MERGE nombre_archivo1 nombre_archivo2; se comporta de manera similar a SET archivo1; SET archivo2; salvo que no se detiene en la observacin final del archivo con menos observaciones, sino que escribe valores missing en las variables del archivo con menos observaciones no presentes en el archivo con ms observaciones. data uno; input A B; cards; 2 1 3 4 ; data dos; input B C; cards; 6 9 7 5 2 7 ; data tres; merge uno dos; proc print; run;

6-

Statistical Analysis System

DATA

Cuando hay variables comunes en ambos ficheros y queremos unirlos segn los valores coincidentes de esta variable hay que utilizar, en combinacin con MERGE, la sentencia BY. Antes de realizar la unin los ficheros deben estar ordenados por la variable comn. PROC SORT DATA= mombre_archivo1; BY variable1 variable2 variableN; PROC SORT DATA= mombre_archivo2; BY variable1 variable2 variableN; MERGE nombre_archivo1 nombre_archivo2; BY variable1 variable2 variableN; Ejemplo: data persona; input nombre $ sexo $; cards; mary f ann f tom m ; data lugar; input nombre $ ciudad $ region; cards; jose erie 5 mary miami 2 mary tampa 7 ann tampa 6 ; La utilizacin de MERGE: data result; merge persona lugar; proc print; run; da lugar a OBS NOMBRE SEXO CIUDAD 1 jose f erie 2 mary f miami 3 mary f tampa 4 ann . tampa

REGION 5 2 7 6

Asignando valores errneos de variables (SEXO=f para NOMBRE=jose). Esto es debido a que MERGE, como (SET uno;SET dos) lee y graba los datos de los dos archivos por orden y en paralelo.

7-

Statistical Analysis System Con el programa: proc sort data=persona;by nombre; proc sort data=lugar;by nombre; data datos; merge persona lugar; by nombre; proc print; run; da lugar a NOMBRE 1 ann 2 jose 3 mary 4 mary 5 tom

DATA

SEXO f f f m

CIUDAD tampa erie miami tampa .

REGION 6 5 2 7 .

Realizando correctamente la operacin de unin.

8-

Statistical Analysis System

DATA

Escritura de datos en la ventana LOG


Sentencia PUT Escribe los valores de las variables en la ventana LOG. Se utiliza para depurar el cdigo. Tambin permite obtener un fichero ASCII a la medida de nuestras necesidades. Sintaxis PUT var1 especificaciones1 var4 especificaionesn;

Utiliza la misma sintaxis y caractersticas que la sentencia INPUT. Frecuentemente se utiliza con smbolos de control de cursor.

Ejemplo: data uno; input a b c @@; put @3 a / b +4 c; cards; 3 4 5 1 2 3 ; escribir en el LOG: 3 4 1 2 3 5

Otra opcin: put a= b= c=; escribir en LOG tambin el signo igual =: a=3 b=4 c=5 a=1 b=2 c=3 put 'este es el valor de a:' a; pondr: este es el valor de a: 3 este es el valor de a: 1

9-

Statistical Analysis System

DATA

Creacin de ficheros externos


Si lo que se quiere es crear un fichero de datos externo a partir de un fichero SAS se utilizan el par de sentencias FILE y PUT. Sintaxis FILE nombre del fichero externo; PUT var1 especificaciones1 var4 especificaionesn; Ejemplo: LIBNAME FF 'A:\'; DATA _NULL_ ; SET FF.MUNDO; FILE 'b:\datos.txt'; PUT a= b= c=;

escribe la salida de la instruccin PUT en el archivo 'b:\datos.txt'. La opcin FILE PRINT aade a las salidas de los procedimientos de la ventana OUTPUT las salidas de la orden PUT. DATA matriz; SET mat; FILE PRINT; PUT b=; PROC FREQ; RUN;

Aparece en la ventana OUTPUT: -Los valores de b en formato b=. -La tabla de frecuencias de la variable b.

10 -

S-ar putea să vă placă și