¿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 */
/*----------------*/
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!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.