Artículos

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;