2012 paso data cap 06 variables
TRANSCRIPT
![Page 1: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/1.jpg)
6 Capitulo: Variables en SAS
6.1 Atributos de las variables en SAS
En SAS solo hay dos tipos de variables, variables numéricas y variables cadena. Los
nombres de las variables en SAS tienen que seguir unas determinadas reglas:
1. La longitud del nombre puede ser de hasta 32 caracteres.
2. Los nombres deben comenzar con una letra o el carácter (_).
3. Los nombres de las variables sólo pueden formarse con letras, números o
barra baja, pero no puede contener los símbolos siguientes: % $ ! * & # @.
4. Los nombres pueden ser en mayúsculas o minúsculas, aunque el SAS no
diferencia entre ellas.
Las variables se crean generalmente en el paso DATA. Las principales formas de
crear variables son:
Utilizando una sentencia de asignación: area= 2*PI**2.
Leyendo datos con INPUT en un paso DATA.
Especificando una nueva variable en una sentencia FORMAT o INFORMAT.
Especificando una nueva variable en una sentencia LENGTH.
Especificando una nueva variable en una sentencia ATTRIB.
Utilizando la opción IN= opciones de Data Set.
Las características de una variable en SAS se llaman atributos y se pueden declarar o
modificar con las sentencias siguientes:
FORMAT
INFORMAT
LENGHT
ATTRIB
Sentencia FORMAT
La sentencia FORMAT permite especificar el formato de escritura de una variable. En
la sentencia FORMAT se declara una o más variables seguidas del formato a aplicar:
FORMAT variable format.;
FORMAT variable1 variable2 ... variablen format.;
FORMAT variable1 format1. variable2 format2. ...;
![Page 2: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/2.jpg)
Statistical Analysis System DATA
- 1 -
Sentencia INFORMAT
La sentencia INFORMAT se comporta de igual forma y tiene las mismas opciones que
la sentencia FORMAT. La sentencia INFORMAT se utiliza para aplicar un formato
determinado a una variable cuando esta se lee con una sentencia INPUT.
Sentencia LABEL
La sentencia LABEL asigna una etiqueta a una variable.
LABEL variable =’label’
Sentencia LENGHT
Cambia la longitud de una variable.
LENGHT variable <más variables> <$> longitud;
LENGHT DEFAULT = n;
La segunda opción de la sentencia LENGHT sólo se puede utilizar con variables
numéricas y cambia la longitud por defecto de las nuevas variables numéricas que se
definan.
Sentencia ATTRIB
Permite asignar las características generales de una o varias variables. Esto es, da
formato, etiqueta y fija la longitud de las variables.
ATTRIB variables FORMAT=formato LABEL=’etiqueta’ LENGHT=longitud;
Opción IN
IN= opciones de Data Set crea una variable binaria (0, 1) especial que sirve a modo de
bandera para saber si la observación pertenece al DataSet o no pertenece. La variable
toma el valor 1 si pertenece y toma el valor cero en caso contraio. Esta opción IN se
puede utilizar con las sentencias SET, MERGE y UPDATE del paso DATA.
En el ejemplo siguiente se unen dos archivos de datos SAS: Viejo y Nuevo. La opción
IN crea una nueva variable flag (bandera) que indica si la observación proviene del
DataSet Nuevo.
![Page 3: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/3.jpg)
Statistical Analysis System DATA
- 2 -
DATA Viejo;
INPUT ID @4 Nombre $ 9. Edad Nota Sexo $;
DATALINES;
1 Manuel 16 6.8 M
3 Elena 13 6.2 F
5 Rosa 17 5.9 F
7 M. Flavia 18 7.0 F
9 Prudencio 14 5.9 M
11 Casimira 15 8.7 F
;
PROC PRINT DATA = Viejo;
RUN;
DATA Nuevo;
INPUT ID @4 Nombre $ 9. Edad Nota Sexo $;
DATALINES;
2 Jose Luis 14 6.8 M
8 Victoria 12 6.2 F
4 Gerardo 17 9.7 M
10 Sisebuta 19 7.4 F
;
PROC PRINT DATA = Nuevo;
RUN;
/* Ordenamos los ficheros por la variable ID */
PROC SORT DATA= VIEJO; BY ID;
PROC SORT DATA= NUEVO; BY ID;
DATA Junto;
MERGE Viejo Nuevo(IN=x); BY ID;
Flag = x;
RUN;
PROC PRINT DATA= Junto;
RUN;
![Page 4: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/4.jpg)
Statistical Analysis System DATA
- 3 -
6.2 Trasformación de tipos de variables
Para transformar los tipos de variables en SAS se dispone de las sentencias INPUT y
PUT.
Transformación de tipo carácter a numérico.
Para trasformar una variable carácter (con contenido numérico) a variable numérica se
dispone de dos métodos:
1.- Se realiza una operación numérica con la variable a transformar.
Ejemplo 1:
DATA uno;
x = '2009';
numero1 = x*4;
numero2 = x/11;
numero3 = x**2;
numero4 = x + 64;
numero5 = sum(x, 12); /*Función numérica*/
PROC CONTENTS;
RUN;
2.- Por medio de la sentencia INPUT(variable, formato)
Ejemplo 2: Transformar de carácter a numérico.
DATA dos;
x = '2009';
numero6 = INPUT(x,best8.);
PROC CONTENTS;
RUN;
Ejemplo 3: Trasformar de carácter a fecha.
DATA tres;
x ='11/03/01';
Fecha = INPUT (x, ddmmyy10.);
PROC CONTENTS;
PROC PRINT;
FORMAT Fecha ddmmyy10.;
RUN;
Transformación de tipo carácter a numérico.
Para trasformar una variable numérica a variable carácter se utiliza la sentencia
PUT(variable, formato)
Ejemplo 4: Transformar de numérico a carácter.
![Page 5: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/5.jpg)
Statistical Analysis System DATA
- 4 -
DATA cuatro;
x = 23456;
Caracter = PUT (x, 5.);
PROC CONTENTS;
RUN;
6.3 Variables automáticas
Las variables automáticas o variables internas son variables creadas en el paso DATA
o en alguna sentencia del paso DATA. Estas variables no son presentadas en la
ventana OUTPUT, sin embargo se pueden utilizar dentro de cualquier programa SAS.
Las variables automáticas se caracterizan por que su nombre comienza y finaliza con
el carácter barra baja.
En cualquier paso DATA al menos se crean:
_N_ Cuenta el número de veces que se ha realizado el paso DATA.
_ERROR_ Su valor por defecto es 0. Si se produce algún error cambia el valor a 1.
6.4 Lista de variables en SAS
Las listas de variables en SAS es un método abreviado para referirnos a un conjunto
de variables sin tener que nombrar una a una. En SAS se distinguen las siguientes
listas de variables:
1. Lista de rango numérico:
Se aplica a un conjunto de variables numéricas que tiene el mismo nombre
salvo un sufijo numérico:
Para nombrar Se utiliza
x1,x2,x3,…,xn x1-xn
var1, var2, var3,…,varn var1-varn
La numeración tiene que ser consecutiva.
Ejemplo:
DATA ;
INPUT x1-xn;
2. Lista de rango de nombres:
Se aplica para referirse a las posiciones de las variables dentro de un DataSet.
Las diferentes opciones son:
![Page 6: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/6.jpg)
Statistical Analysis System DATA
- 5 -
Lista de Rango de Nombres
Opción Se refiere a:
x--a Todas las variables ordenadas tal y como se encuentran en el fichero de datos
desde la variable x hasta la variable a (incluidas x y a)
x-numeric-a Todas las variables numéricas que hay entre las variables x y a (incluidas x y a)
x-character-a Todas las variables carácter que hay entre las variables x y a (incluidas x y a)
Ejemplos:
Dada la sentencia:
INPUT id nombre $ altura peso salario longitud ;
/* Guardar las variables numéricas id, nombre, altura, peso, salario, longitud*/
KEEP id-numeric-salario;
/*Guardar las variables nombre, altura, peso, salario */
KEEP nombre—salario;
3. Lista de prefijos de nombre
Es una característica que permiten algunas funciones. Si tenemos las
variables:
Salario_Ene, Salario_Feb,…., Salario_Dic
La sentencia, SUM (OF Salario:)
Calculará la suma de las variables.
![Page 7: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/7.jpg)
Statistical Analysis System DATA
- 6 -
4. Listas especiales de nombres
Son las siguientes:
_NUMERIC_ se refiere a todas las variables numéricas del DataSet.
_CHARACTER_ se refiere a todas las variables carácter del DataSet.
_ALL_ se refiere a todas las variables del DataSet.
5. Listas de rango de caracteres en la sentencia INPUT.
No hay una forma directa de hacer una lista de variables carácter del tipo de
las variables numéricas. Sin embrago, se puede conseguir el mismo efecto con
la combinación de dos sentecias, como se muestra en el ejemplo siguiente:
Data uno;
length u1 - u3 $1. ;
input u1 - u3 ;
datalines;
a b c
d r f
g h v
;
proc print; run;
6.5 Otras sentencias asociadas a las variables SAS
Otras sentencias asociadas a las variables son
6.5. 1. Sentencia DROP
Permite especificar que variables se eliminan de la memoria del paso DATA.
DROP = lista de variables ;
DROP lista de variables ;
Ejemplo 1: DROP en la sentencia DATA.
DATA nuevo2 (drop=nombre talla); /*Elimina las variables al escribir
el fichero nuevo2 */
SET alumnos;
PROC PRINT;
RUN;
Ejemplo 2: DROP en la sentencia SET.
DATA nuevo2;
SET alumnos (drop=nombre talla); /* No recupera las variables */
PROC PRINT;
RUN;
Ejemplo 3: DROP
DATA nuevo2;
![Page 8: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/8.jpg)
Statistical Analysis System DATA
- 7 -
SET alumnos;
DROP nombre talla; /* A partir de este punto la variable se borra */
PROC PRINT;
RUN;
6.5. 2. Sentencia KEEP
Permite especificar que variables se mantendrán en la memoria del paso DATA.
KEEP= <lista de variables> ;
KEEP <lista de variables> ;
Ejemplo 1: KEEP en la sentencia DATA.
DATA nuevo2 (KEEP=nombre talla);/* Sólo guarda las variables nombre y
talla */
SET alumnos;
PROC PRINT;
RUN;
Ejemplo 2: KEEP en la sentencia SET.
DATA nuevo2;
SET alumnos (KEEP=nombre talla); /* Sólo recupera las variables nombre
y talla */
PROC PRINT;
RUN;
Ejemplo 3: KEEP
DATA nuevo2;
SET alumnos;
KEEP nombre talla; /* A partir de este punto sólo permanecen las
variables nombre y talla */
PROC PRINT;
RUN;
6.5. 3. Sentencia RENAME
Asigna un nuevo nombre a la variable.
RENAME anterior = nuevo
Ejemplo 1:
DATA nuevo2 (RENAME=(nombre=apodo));
SET alumnos;
PROC PRINT;
RUN;
Ejemplo 2: DATA nuevo2;
SET alumnos (RENAME=(nombre=apodo));
PROC PRINT;
RUN;
![Page 9: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/9.jpg)
Statistical Analysis System DATA
- 8 -
Ejemplo 3: DATA nuevo2;
SET alumnos;
RENAME nombre=apodo
Edad=tiempo_de _vida;
PROC PRINT;
RUN;
Status of Variables and Variable Names When Dropping, Keeping, and Renaming Variables
Where
Specified
Data Set Option
or Statement
Purpose Status of Variable or Variable Name
Input data
set
DROP=
KEEP=
includes or excludes
variables from processing
if excluded, variables are not available
for use in DATA step
RENAME= changes name of variable
before processing
use new name in program statements
and output data set options; use old
name in other input data set options
Output data
set
DROP, KEEP specifies which variables
are written to all output
data sets
all variables available for processing
RENAME changes name of variables
in all output data sets
use old name in program statements; use
new name in output data set options
DROP=
KEEP=
specifies which variables
are written to individual
output data sets
all variables are available for processing
RENAME= changes name of variables
in individual output data
sets
use old name in program statements and
other output data set options
![Page 10: 2012 Paso DATA Cap 06 Variables](https://reader031.vdocumento.com/reader031/viewer/2022020122/540f584d7bef0a21408b46e6/html5/thumbnails/10.jpg)
Statistical Analysis System DATA
- 9 -
6.6 Etiquetas de Valores
En SAS no hay una sentencia para fijar las etiquetas de valores de una variable. Sin
embargo, por medio del procedimiento FORMAT (PROC FORMAT) se puede
conseguir el mismo efecto.
El procedimiento FORMAT crea nuevos formatos que una vez definidos se utilizan
como un formato más del sistema SAS. Su expresión general es:
PROC FORMAT ;
VALUE variable rango1 valor1
rango2 valor2
………………
rangoN valorN;
Ejemplo
PROC FORMAT;
VALUE sexo 'm' 0
'h' 1;
A partir de estar definido el formato sexo se puede utilizar como uno más,
FORMAT genero sexo. ;
Ejemplo
PROC FORMAT;
VALUE cierto 'No' 0
'Si' 1;
FORMAT ABC El_Mundo El_Pais cierto. ;