03_lectura_por_columnas

INPUT var [$] colinicial-colfinal [.decimales];
/***
$ Expresa que la variable es alfanumérica. El signo se utilizará con el mismo sentido en los
restantes tipos de formato de lectura . La longitud en caracteres del nombre de las variables
por defecto es 8.
En lectura por columnas, el puntero de lectura se sitúa en la columna posterior a la columna
final indicada.
$& indica que esa variable tiene espacios y vamos a traerla de un archivo
separado por espacios.
Si las variables alfanuméricas son largas es necesario utilizar en el paso data la sentencia
length var. $ n, que define la longitud máxima n de la variable, que por defecto es 8.
**/
data uno;
input edad 1-2 sexo $ 3 peso 4-6 .1;
cards;
24H804
12M337
15M384
;
run;
proc print data=uno;
run;
estudiantes.txt:
h 25 70 168
h 20 80 175
m 30 55 160
h 18 85 190
m 26 70 165

data software.estudiantes;
infile 'e:\sas\estudiantes.txt';
input sexo$ edad peso altura;
proc print data=software.estudiantes;
run;
data software.estudiantes2;
infile 'e:\sas\estudiantes2.txt' DLM=',';
input sexo$ edad peso altura;
proc print data=software.estudiantes2;
run;
/*libname Clase 'E:\sas\estadistica';
data Clase.esquema;
set software.estudiantes2;
run;
/* No es necesario data cuando importamos desde excel*//*

proc import datafile='e:\sas\estud_excel'out=software.estud_xls dbms=excelcs;
run;
data software.columnas;
input sexo $ 1-1 edad 2-3 peso 4-5 altura 6-8 ;
cards;
h2570168
h2080175
m3055160
h1885190
m2670165
;
run;
*/
data uno;
length provincia $ 30;
input provincia $ 1-27 codigo 28-30;
cards;
La Coruña
345
Las Palmas de Gran Canaria
260
Orense
113
;
data software.columnas;
length nombre $ 30;
input  sexo $ 1-1 edad 2-3 peso 4-5 altura 6-8 .2 nombre $ 9-39;
cards;
m2570168 ana maria
h2080175 pedro lopez
h3055160 marta gonzalez
h1885190 juan garcia
m2670165 loli
;
run;
data software.columnas;
length nombre $ 30 ciudad $ 30;
input  sexo $ 1-1 edad 2-3 peso 4-5 altura 6-8 .2 nombre $ 9-39 ciudad $ 40-70;
cards;
m2570168 ana maria  Santiago de Compostela
h2080175 pedro lopez  Madrid
h3055160 marta gonzalez  Salamanca
h1885190 juan garcia  Bilbao
m2670165 loli martinez Murcia
;
run;*/
data software.columnas;

length nombre $ 30 ciudad $ 30;/*lee m�ximo 30 caracteres*/
input  sexo $ 1-1 edad 2-3 peso 4-5 altura 6-8 .2 nombre $ &  ciudad $ & ;
/*dos espacios en blanco*/
cards;
m2570168 ana maria  Santiago de Compostela
h2080175 pedro lopez  Madrid
h3055160 marta gonzalez  Salamanca
h1885190 juan garcia  Bilbao
m2670165 loli martinez Murcia
;
run;
data software.columnas;

input  sexo $  edad  altura @@ ;

cards;
H 125
180
M 20
150 H 26
190 . 22 175
;
run;
data software.columnas;
INFILE cards MISSOVER;
input  sexo $  edad  altura  ;

cards;
H 125
180
M 20
150 H 26
190 . 22 175
;
run;
data software.ana_m_rodrigo;
input var1 6.3 var2 6.3 var3 6.1 var4 $ 10. var5 $ 10.;
cards;
123456234567345678murcielagomadrid2015
234567678912345623miercoles3barcelona8
234589123456345678marcianitocableado12
6543679997899871111234567891567abcdefg
560989288870111118mortiferosmortales15
;
run;
proc print data=software.ana_m_rodrigo;
run;
/***Crear dos ficheros con distinto nombre e igual contenido**/
/*libname Clase 'E:\sas\estadistica';*/
data software.esquema;
set software.estudiantes2;
run;
/*Importar datos desde excel.
 No es necesario data cuando importamos desde excel
Ojo: en clase dijeron dbms=excelcs; pero no sirve,
es dbms=xls;*/

proc import datafile="/folders/myfolders/clases/estud_excel2.xls" out=software.myxls dbms=xls;
run;
proc print data=software.myxls;
run;
/** Import an XLS file.  **/

PROC IMPORT DATAFILE="/folders/myfolders/clases/estud_excel2.xls"
            OUT=WORK.MYEXCEL
            DBMS=XLS
            REPLACE;
RUN;

/** Print the results. **/

PROC PRINT DATA=WORK.MYEXCEL; RUN;

data software.columnas;
input sexo $ 1-1 edad 2-3 peso 4-5 altura 6-8 ;
cards;
h2570168
h2080175
m3055160
h1885190
m2670165
;
run;
proc print data=software.columnas;
run;

data software.column_02;
length nombre $ 30;
input  sexo $ 1-1 edad 2-3 peso 4-5 altura 6-8 .2 nombre $ 9-39;
cards;
m2570168 ana maria
h2080175 pedro lopez
h3055160 marta gonzalez
h1885190 juan garcia
m2670165 loli
;
run;
proc print data=software.column_02;
run;
/*libname software 'e://sas';*/

data software.column_03;
length nombre $ 30 ciudad $ 30;
input  sexo $ 1-1 edad 2-3 peso 4-5 altura 6-8 .2 nombre $ 9-24 ciudad $ 25-70;
cards;
m2570168 ana maria      Santiago de Compostela
h2080175 pedro lopez    Madrid
h3055160 marta gonzalez Salamanca
h1885190 juan garcia    Bilbao
m2670165 loli martinez  Murcia
;
run;
proc print data=software.column_03;
run;

data software.column_04;

length nombre $ 30 ciudad $ 30;/*lee m�ximo 30 caracteres*/
input  sexo $ 1-1 edad 2-3 peso 4-5 altura 6-8 .2 nombre $ &  ciudad $ & ;
/*dos espacios en blanco: $&*/
cards;
m2570168 ana maria  Santiago de Compostela
h2080175 pedro lopez  Madrid
h3055160 marta gonzalez  Salamanca
h1885190 juan garcia  Bilbao
m2670165 loli martinez Murcia
;
run;
proc print data=software.column_04;
run;

 /*aquí no salta de línea por @@*/
data software.column_05;

input  sexo $  edad  altura @@ ;

cards;
H 125
180
M 20
150 H 26
190 . 22 175
;
run;
proc print data=software.column_05;
run;

/*escribe varias observaciones missing porque obligamos
a que busque la variable sin
saltar de línea, con lo que asigna .*/

data software.column_06;
INFILE cards MISSOVER;
input  sexo $  edad  altura  ;

cards;
H 125
180
M 20
150 H 26
190 . 22 175
;
run;
proc print data=software.column_06;
run;
/*Ejercicio de clase*/
data software.ana_m_rodrigo;
input var1 6.3 var2 6.3 var3 6.1 var4 $ 10. var5 $ 10.;
cards;
123456234567345678murcielagomadrid2015
234567678912345623miercoles3barcelona8
234589123456345678marcianitocableado12
6543679997899871111234567891567abcdefg
560989288870111118mortiferosmortales15
;
run;
proc print data=software.ana_m_rodrigo;
run;

 

Correo

Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.

Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.