2012 paso data cap 06 variables

10
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. ...;

Upload: igor-s11

Post on 09-Sep-2014

243 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 2012 Paso DATA Cap 06 Variables

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

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

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

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

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

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

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

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

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

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. ;