BookmarkSubscribeRSS Feed
Tip Semanal 005: Longitud en Proc import
Berenice25
SAS Employee

¿Qué hacer si los valores de alguna variable están "incompletos" cuando se utiliza Proc import?
Te ofrecemos una alternativa.

 

/********************************************************************************/
/* Uso del Proc import							    							*/
/* Cómo agregar filas para que el procedimiento determine la longitud de 		*/
/* una variable en forma automática												*/
/********************************************************************************/

/*-------------------------------------------------------------------------*/
/* Para comenzar, una mirada a los datos con los que vamos a trabajar: 	   */
/*-------------------------------------------------------------------------*/

/* Estos son los datos del archivo 'Clase20.csv' */
/* NOTA: el nombre 'Alejandro' están en la fila 20 */
*Name,Sex,Age,Height,Weight
Alfred,M,14,69,112.5
Alice,F,13,56.5,84
Barbara,F,13,65.3,98
Carol,F,14,62.8,102.5
Henry,M,14,63.5,102.5
James,M,12,57.3,83
Jane,F,12,59.8,84.5
Janet,F,15,62.5,112.5
Jeffrey,M,13,62.5,84
John,M,12,59,99.5
Joyce,F,11,51.3,50.5
Judy,F,14,64.3,90
Louise,F,12,56.3,77
Mary,F,15,66.5,112
Philip,M,16,72,150
Robert,M,12,64.8,128
Ronald,M,15,67,133
Thomas,M,11,57.5,85
Alejandro,M,12,75,102
William,M,15,66.5,112
;

/* Estos son los datos del archivo 'Clase21.csv' */
/* NOTA: el nombre 'Alejandro' están en la fila 21 */
*Name,Sex,Age,Height,Weight
Alfred,M,14,69,112.5
Alice,F,13,56.5,84
Barbara,F,13,65.3,98
Carol,F,14,62.8,102.5
Henry,M,14,63.5,102.5
James,M,12,57.3,83
Jane,F,12,59.8,84.5
Janet,F,15,62.5,112.5
Jeffrey,M,13,62.5,84
John,M,12,59,99.5
Joyce,F,11,51.3,50.5
Judy,F,14,64.3,90
Louise,F,12,56.3,77
Mary,F,15,66.5,112
Philip,M,16,72,150
Robert,M,12,64.8,128
Ronald,M,15,67,133
Thomas,M,11,57.5,85
William,M,15,66.5,112
Alejandro,M,12,75,102
;


/*-------------------*/
/* inicio del código */
/*-------------------*/

/* En este primer Proc import se detecta correctamente la longitud de la variable 'Nombre' */
/* Verificar que el nombre 'Alejandro' aparece completo */

proc import datafile='C:\workshop\clase20.csv' 
out=clase20 dbms=csv replace; /* mirar la variable 'Nombre' en la tabla de salida 'clase20' y ver 
							     si 'Alejandro' aparece completo */
run;


/* En este segundo Proc import no se detecta correctamente la longitud de la variable 'Nombre' */
/* Por qué? Porque el procedimiento "mira" las primeras 20 filas para establecer las longitudes 
   de las variables */
/* Verificar que el nombre 'Alejandro' aparece cortado */

proc import datafile='C:\workshop\clase21.csv' 
out=clase21 dbms=csv replace; /* mirar la variable 'Nombre' en la tabla de salida 'clase21' y ver 
							     si 'Alejandro' aparece completo */
run;


/* En este tercer y último Proc import extendemos la cantidad de filas para detectar automáticamente las 
   longitudes de las variables */
/* Ahora el procedimiento "mira" las primeras 30 filas para establecer las longitudes 
   de las variables porque estamos utilizando la sentencia 'guessingrows=30'*/
/* Verificar que el nombre 'Alejandro' aparece completo a pesar de estar en la fila 21 */

proc import datafile='C:\workshop\clase21.csv' 
out=clase21_ok dbms=csv replace; 
guessingrows=30; /* mirar la variable 'Nombre' en la tabla de salida 'clase21_ok' y ver 
				    si 'Alejandro' aparece completo */
run;

/*----------------*/
/* fin del código */	
/*----------------*/

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Article Labels
Article Tags
Contributors