/********************************************************************************/
/* Uso do Proc Import */
/* Como adicionar um parâmetro para a PROC determinar o tamanho de */
/* uma variável automaticamente */
/********************************************************************************/
/*-------------------------------------------------------------------------*/
/* Para começar, vejamos os dados com os quais vamos trabalhar: */
/*-------------------------------------------------------------------------*/
/* Este é o arquivo de dados 'classe20.csv' */
/* NOTA: o nome 'Alejandro' está na linha 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
;
/* Este é o arquivo de dados 'classe21.csv' */
/* NOTA: o nome 'Alejandro' está na linha 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
;
/*-------------------*/
/* início do código */
/*-------------------*/
/* Neste primeiro PROC IMPORT, o tamanho da variável 'Name' é detectado corretamente */
/* Verifique que o nome 'Alejandro' aparece completo */
proc import datafile='C:\workshop\classe20.csv'
out=classe20 dbms=csv replace; /* olhe para a variável 'Name' na tabela de saída 'classe20' e veja
se 'Alejandro' aparece completo */
run;
/* Neste segundo PROC IMPORT, o tamanho da variável 'Name' não é detectado corretamente */
/* Porque? Como a PROC "observa" as primeiras 20 linhas (por default) para definir os tamanho
das variáveis */
/* Verifique que o nome 'Alejandro' está cortado */
proc import datafile='C:\workshop\classe21.csv'
out=classe21 dbms=csv replace; /* olhe para a variável 'Name' na tabela de saída 'classe21' e veja
se 'Alejandro' aparecer completo */
run;
/* Neste terceiro e último PROC IMPORT, estendemos o número de linhas para detectar automaticamente o
comprimentos variáveis */
/* Agora o procedimento "olha" para as primeiras 30 linhas para definir os comprimentos
das variáveis porque estamos usando a instrução 'guessingrows=30'*/
/* Verifique se o nome 'Alejandro' aparece completo apesar de estar na linha 21*/
proc import datafile='C:\workshop\classe21.csv'
out=classe21_ok dbms=csv replace;
guessingrows=30; /* olhe para a variável 'Name' na tabela de saída 'classe21_ok' e veja
se 'Alejandro' aparecer completo */
run;
/*----------------*/
/* fim do código */
/*----------------*/
... View more