24 H 80.4
12 M 33.7
15
M 38.4
data uno;
infile 'c:\paco.txt';
input edad sexo $ peso ;
run;
proc print data=uno;
run;
24,H,80.4
12,M,33.7
15,M,38.4
data uno;
infile 'c:\paco.txt' dlm=’,’;
input edad sexo $ peso ;
run;
/**
1) Los . son leídos como valores missing.
(2) Cuando el puntero de lectura acaba de leer todas las variables de una Observación, salta a
la siguiente línea de texto para comenzar a leer la siguiente Observación. Esta manera de
funcionar puede anularse utilizando la opción @@, que indica al puntero de lectura que debe
seguir en la misma línea hasta que no encuentre texto diferente de espacios en blanco, leyendo
las variables por orden de lista y recomenzando cada vez la lectura de la lista si es necesario.
(3) Si el puntero de lectura no encuentra el valor de una variable (es decir, no encuentra texto
donde debería estar el valor de una variable), lo busca en la línea siguiente (salvo cuando se
utiliza la opción missover en la sentencia INFILE).
**/
data uno;
input a b c;
cards;
12 2
4
1 3
3 5 6
5 . 8 8
;
data dos;
input edad sexo $ peso @@;
cards;
24 H 80.4 12 M 33.7
15 M 38.4
;
/***
(1) Si el archivo de texto está en formato libre, y la variable de texto ocupa más de 8
caracteres, se debe añadir al paso data la sentencia length var. $ n, donde n es el número
máximo de caracteres de la variable.
(2) El símbolo & en lectura en formato libre indica que hacen falta dos blancos para cambiar
de variable. Se utiliza para leer variables alfanuméricas que contienen un espacio interno entre
cada palabra.
**/
data uno;
length nombre $ 15;
input nombre $ @@;
cards;
Cantalapiedra Gonzalez Shostakovich
;
/**
Lectura de variables alfanuméricas que contienen espacios
***/
data uno;
length nombre $ 30;
input nombre $ &;
cards;
Paco Pérez 18
Maria Méndez 22
;
/**
En este ejemplo hay que señalar que los datos numéricos 18 y 22 de la edad no son leídos,
debido a que en el funcionamiento por defecto de input, al terminar de leer la única variable
nombrada (la variable nombre) , el puntero de lectura salta de línea.
Si las variables alfanuméricas contienen en ocasiones más de un espacio, o bien por ejemplo
en algunas observaciones contienen un espacio pero en otras no, y hay más variables
presentes en los datos, las soluciones de lectura alternativas son:
1) Lectura en formato por columna, si los datos están organizados en ese modo.
2) Lectura con formato ( se verá a continuación), equivalente a menudo a la lectura por
columnas.
3) Variables separadas por comas u otro símbolo.
En todo caso con variables alfanuméricas siempre se tendrá cuidado de utilizar la opción
length para cubrir toda la longitud (si la longitud asociada es mayor que la necesaria no
ocurre nada, simplemente se utiliza un poco más de memoria).
**/
/**
Notación abreviada para la lectura de varias variables en formato libre
Si se desean asignar los nombres x1 a x15 a las 15 variables que se quieren leer en formato
libre, se utilizará la notación abreviada**/
input x1-x15;
**/y las 15 variables serán leídas con formato libre, asignándoles los nombres x1, x2, x3, ..., x15.
**/