Documente Academic
Documente Profesional
Documente Cultură
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
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
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-
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
REGION 6 5 2 7 .
8-
DATA
Utiliza la misma sintaxis y caractersticas que la sentencia INPUT. Frecuentemente se utiliza con smbolos de control de cursor.
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-
DATA
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 -