Sei sulla pagina 1di 5

Curso de introduccin a Stata Jordi Muoz (UAB)

Sesiones 2 - 3: Transformacin de datos


Hasta ahora hemos visto los elementos bsicos de stata, y cmo inspeccionar los datos que
tenemos. A partir de ahora vamos a trabajar sobre ellos, modificndolos del modo que sea
necesario para el anlisis.

Nombres y Etiquetas
Las variables en stata tienen nombres y etiquetas que nos ayudarn a identificarlas. Un buen
uso de los nombres y etiquetas nos puede ahorrar mucho tiempo y hacer nuestro tabajo en
Stata ms fcil, eficiente y fiable.

Rename
Si queremos cambiar el nombre de cualquier variable, slo tenemos que usar la orden
rename nombreviejo nombrenuevo

Etiquetas de variable
Las etiquetas de variable resultan tiles especialmente cuando tenemos muchas
variables similares o cuyos nombres no resulten informativos. Para asignar etiquetas o
cambiarlas, slo tenemos que escribir label variable nombrevariable
etiqueta (las comillas son importantes)

Etiquetas de valores
No slo las variables tienen etiquetas, sino que las categoras en las variables
categricas tambin las pueden tener. Esto resulta especialmente til porque nos
permite identificar las categorias sin tener que recurrir constantemente a los
cuestionarios o libros de cdigos. Para asignar etiquetas de valor a una variable
debemos proceder en dos pasos:
o

Primero creamos la etiqueta mediante el siguiente comando: label define


nombreetiqueta 1etiqueta1 2etiqueta (etc.)

Despus vinculamos la etiqueta a la variable o variables: label values


variable nombreetiqueta

Crear y eliminar nuevas variables

Generate
Para crear una nueva variable, usaremos el comando generate. En Stata al crear una
nueva variable debemos especificar el nombre y el contenido de la misma. Para definir
el contenido usaremos expresiones lgicas y funciones aritmticas, lo que da mucho
poder al comando generate. Por ejemplo:

Curso de introduccin a Stata Jordi Muoz (UAB)

generate nuevavariable=. Genera una nueva variable con todos los


valores missing

generate nuevavariable=variableexistente Genera una copia de


una variable

generate nuevavariable=1 if variableexistente<=2 Genera


una variable que toma valor 1 si la antingua es menor o igual que 2, y missing
para el resto

generate nuevavariable= variableexistente^2 Genera una


variable igual al cuadrado de la antigua

Drop /keep
Para eliminar una variable, o un conjunto de variables, slo tenemos que usar el
comando drop nombrevariable Por el contrario, si lo que queremos es conservar
una serie de variables, usaremos el comando keep, que es el inverso de drop (elimina
todas las variables no especificadas).

Drop if / drop in (keep if/ keep in)


Si lo que queremos es eliminar algunas observaciones en lugar de variables, usaremos
las expresiones lgicas para especificar que casos queremos borrar (o conservar). As,
usaremos drop if cuando queramos especificar una condicin, y drop in cuando
queramos delimitar un rango de observaciones.

Recodificar variables: bsicos

Replace
Si para crear una nueva variable usbamos el comando generate, para cambiar su
contenido, normalmente usaremos el comando replace. El comando replace,
combinado con las expresiones lgicas y funciones aritmticas, es de gran utilidad y
nos permite hacer muchas cosas que en otros programas resultan ms complicadas de
hacer. La sintaxis general es replace variable = valor o expresin (if /
in)

Recode
recode es una alternativa, ms limitada pero til para recodificar variables
categricas. Con recode cambiamos los valores de la variable uno a uno, debiendo
especificar siempre los valores de partida y los de destino. La sintxis bsica es como
sigue: recode variable (#=#) (# # = #) (# / # =#)

En esta sintaxis, podemos especificar dos valores de partida separndolos con


un espacio, o un rango de valores, usando el smbolo /

Curso de introduccin a Stata Jordi Muoz (UAB)

# normalmente ser un valor numrico, pero tambin puede ser:

missing Todos los casos perdidos

nonmissing Todos los casos vlidos

else El resto de valores no especificados

min El valor mnimo

max El valor mximo (ojo com los missing que se consideran


infinito)

Opciones de recode

A parte de la sintaxis bsica, recode tiene algunas opciones que pueden resultar tiles:
o

Generate: Si no queremos sobreescribir la variable, sino recodificarla en una


nueva, usaremos la opcin generate: recode variable (#=#),
gen(nx1)

Prefix: Si estamos recodificando ms de una variable al mismo tiempo y


queremos hacerlo en nuevas variables usaremos un prefijo mediante la opcin
pre: recode var1 var2 var2 (#=#), pre(nueva) Esto nos aplicar
la recodificacin a unas nuevas variables que se llamaran nuevavar1 y
nuevavar2 respectivamente.

Etiquetas: A la vez que recodificamos, podemos definir etiquetas siempre y


cuando estemos recodificando en una nueva variable, usando la sintaxis
siguiente: recode variable (#=# Etiqueta de valor), gen(nx1)
. Si queremos definir un nombre para las nuevas etiquetas lo podemos hacer
con la opcin label (por defecto tomaran el nombre de la variable.

Tab, gen

A menudo necesitaremos recodificar una variable categrica en una serie de variables


dicotmicas o dummies que tomen valor 1 para cada una de las categoras de la variable
preexistente, y 0 en el resto de casos. Un comando muy til en este sentido es tabulate
variable, generate(prefix)que nos crear automticamente la serie de variables
dicotmicas que queremos.

Recodificar variables: complejos

Egen
Egen es una famlia de funciones para crear nuevas variables con mltiples
posibilidades. Tiene una sintaxis particular que conviene conocer porque nos puede
ahorrar mucho tiempo en determinadas circunstancias. Adems, egen se ha visto
ampliado por mltiples contribuciones de usuarios que, en sesiones posteriores,
veremos cmo descargar. La sintaxis bsica de egen es la siguiente:

Curso de introduccin a Stata Jordi Muoz (UAB)

egen nuevavariable = funcin(variableexistente)

Entre las funciones de egen podemos destacas las siguientes:

Cut: la funcin cut nos sirve para crear fcilmente variables categricas a partir de
una variable contnua: podemos decir, por ejemplo, que nos cree una variable con
4 grupos de edad, bien definidos por nosotros mismos, bien 4 grupos con
frecuencias iguales:
o

egen nuevavariable = cut(variableexistente), at(14, 18,


25, 45, 65, 100)

egen nuevavariable = cut(variableexistente), group(5)

egen nuevavariable = cut(variableexistente),


at(18(15)99)

Podemos comprovar lo que hemos realizado con el comando table:


table nuevavariable, contents(min variableexistente max
variableexistente)

Diff. La funcin dif nos crear una variable dicotmica que tomar valor 1 si las
variables que especifiquemos son iguales entre ellas y 0 si no lo son.
egen nuevavariable = diff(variable1 variable2)

Group: Nos crea una variable categrica para los grupos definidos por las variables
que especifiquemos:
egen nuevavariable = group(variable1 variable2)

Rowmean: Si queremos una variable que recoja la media de cada individuo en un


grupo de variables en nuestra base de datos, podemos usar la siguiente funcin:
egen nuevavariable = rowmean(variable1 variable2)

Valor medio: Alternativamente, nos puede interesar calcular el valor medio de una
variable para determinados grupos. Esto lo podemos hacer combinando la opcin by (o
bysort) con la funcin mean.
By grupo: egen nuevavariable = mean(variable1)

Variables de cadena y numricas


Hemos visto que en Stata hay diferentes tipos de variables, bsicamente las numricas
y las de cadena. A menudo querremos convertir las variables de cadena en numricas
y, quizs, las numricas en cadenas de texto. Esto lo podemos hacer de dos modos
diferentes:

Curso de introduccin a Stata Jordi Muoz (UAB)

Encode/decode: encode crea una nueva variable numrica basada en una


variable de cadena usando el texto de la variable original cmo etiquetas de
valor. Decode realiza la operacin inversa.
encode variable, generate(nuevavariable)

Destring/tostring: Si lo que tenemos es, meramente, una variable numrica


que est guardada como cadena en Stata, la podemos transformar en una
variable numrica real usando la opcin destring

Potrebbero piacerti anche