Curs de intrducción a Stata Jrdi Muñz (UAB) Sesines 2-3: Transfrmación de dats Hasta ahra hems vist ls elements básics de stata, y cóm inspeccinar ls dats que tenems. A partir de ahra vams a trabajar sbre ells, mdificándls del md que sea necesari para el análisis. Nmbres y Etiquetas Las variables en stata tienen nmbres y etiquetas que ns ayudarán a identificarlas. Un buen us de ls nmbres y etiquetas ns puede ahrrar much tiemp y hacer nuestr tabaj en Stata más fácil, eficiente y fiable. Rename Si querems cambiar el nmbre de cualquier variable, sól tenems que usar la rden rename nmbreviej nmbrenuev Etiquetas de variable Las etiquetas de variable resultan útiles especialmente cuand tenems muchas variables similares cuys nmbres n resulten infrmativs. Para asignar etiquetas cambiarlas, sól tenems que escribir label variable nmbrevariable etiqueta (las cmillas sn imprtantes) Etiquetas de valres N sól las variables tienen etiquetas, sin que las categrías en las variables categóricas también las pueden tener. Est resulta especialmente útil prque ns permite identificar las categrias sin tener que recurrir cnstantemente a ls cuestinaris librs de códigs. Para asignar etiquetas de valr a una variable debems prceder en ds pass: Primer creams la etiqueta mediante el siguiente cmand: label define nmbreetiqueta 1 etiqueta1 2 etiqueta (etc.) Después vinculams la etiqueta a la variable variables: label values variable nmbreetiqueta Crear y eliminar nuevas variables Generate Para crear una nueva variable, usarems el cmand generate. En Stata al crear una nueva variable debems especificar el nmbre y el cntenid de la misma. Para definir el cntenid usarems expresines lógicas y funcines aritméticas, l que da much pder al cmand generate. Pr ejempl: 1
Curs de intrducción a Stata Jrdi Muñz (UAB) generate nuevavariable=. Genera una nueva variable cn tds ls valres missing generate nuevavariable=variableexistente Genera una cpia de una variable generate nuevavariable=1 if variableexistente<=2 Genera una variable que tma valr 1 si la antingua es menr igual que 2, y missing para el rest generate nuevavariable= variableexistente^2 Genera una variable igual al cuadrad de la antigua Drp /keep Para eliminar una variable, un cnjunt de variables, sól tenems que usar el cmand drp nmbrevariable Pr el cntrari, si l que querems es cnservar una serie de variables, usarems el cmand keep, que es el invers de drp (elimina tdas las variables n especificadas). Drp if / drp in (keep if/ keep in) Si l que querems es eliminar algunas bservacines en lugar de variables, usarems las expresines lógicas para especificar que cass querems brrar ( cnservar). Así, usarems drp if cuand querams especificar una cndición, y drp in cuand querams delimitar un rang de bservacines. Recdificar variables: básics Replace Si para crear una nueva variable usábams el cmand generate, para cambiar su cntenid, nrmalmente usarems el cmand replace. El cmand replace, cmbinad cn las expresines lógicas y funcines aritméticas, es de gran utilidad y ns permite hacer muchas csas que en trs prgramas resultan más cmplicadas de hacer. La sintaxis general es replace variable = valr expresión (if / in) Recde recde es una alternativa, más limitada per útil para recdificar variables categóricas. Cn recde cambiams ls valres de la variable un a un, debiend especificar siempre ls valres de partida y ls de destin. La sintáxis básica es cm sigue: recde variable (#=#) (# # = #) (# / # =#) En esta sintaxis, pdems especificar ds valres de partida separándls cn un espaci, un rang de valres, usand el símbl / 2
Curs de intrducción a Stata Jrdi Muñz (UAB) # nrmalmente será un valr numéric, per también puede ser: missing Tds ls cass perdids nnmissing Tds ls cass válids else El rest de valres n especificads min El valr mínim max El valr máxim (j cm ls missing que se cnsideran infinit) Opcines de recde A parte de la sintaxis básica, recde tiene algunas pcines que pueden resultar útiles: Generate: Si n querems sbreescribir la variable, sin recdificarla en una nueva, usarems la pción generate: recde variable (#=#), gen(nx1) Prefix: Si estams recdificand más de una variable al mism tiemp y querems hacerl en nuevas variables usarems un prefij mediante la pción pre: recde var1 var2 var2 (#=#), pre(nueva) Est ns aplicará la recdificación a unas nuevas variables que se llamaran nuevavar1 y nuevavar2 respectivamente. Etiquetas: A la vez que recdificams, pdems definir etiquetas siempre y cuand estems recdificand en una nueva variable, usand la sintaxis siguiente: recde variable (#=# Etiqueta de valr ), gen(nx1). Si querems definir un nmbre para las nuevas etiquetas l pdems hacer cn la pción label (pr defect tmarían el nmbre de la variable. Tab, gen A menud necesitarems recdificar una variable categórica en una serie de variables dictómicas dummies que tmen valr 1 para cada una de las categrías de la variable preexistente, y 0 en el rest de cass. Un cmand muy útil en este sentid es tabulate variable, generate(prefix)que ns creará autmáticamente la serie de variables dictómicas que querems. Recdificar variables: cmplejs Egen Egen es una família de funcines para crear nuevas variables cn múltiples psibilidades. Tiene una sintaxis particular que cnviene cncer prque ns puede ahrrar much tiemp en determinadas circunstancias. Además, egen se ha vist ampliad pr múltiples cntribucines de usuaris que, en sesines psterires, verems cóm descargar. La sintaxis básica de egen es la siguiente: 3
Curs de intrducción a Stata Jrdi Muñz (UAB) egen nuevavariable = función(variableexistente) Entre las funcines de egen pdems destacas las siguientes: Cut: la función cut ns sirve para crear fácilmente variables categóricas a partir de una variable cntínua: pdems decir, pr ejempl, que ns cree una variable cn 4 grups de edad, bien definids pr nstrs misms, bien 4 grups cn frecuencias iguales: egen nuevavariable = cut(variableexistente), at(14, 18, 25, 45, 65, 100) egen nuevavariable = cut(variableexistente), grup(5) egen nuevavariable = cut(variableexistente), at(18(15)99) Pdems cmprvar l que hems realizad cn el cmand table: table nuevavariable, cntents(min variableexistente max variableexistente) Diff. La función dif ns creará una variable dictómica que tmará valr 1 si las variables que especifiquems sn iguales entre ellas y 0 si n l sn. egen nuevavariable = diff(variable1 variable2) Grup: Ns crea una variable categórica para ls grups definids pr las variables que especifiquems: egen nuevavariable = grup(variable1 variable2) Rwmean: Si querems una variable que recja la media de cada individu en un grup de variables en nuestra base de dats, pdems usar la siguiente función: egen nuevavariable = rwmean(variable1 variable2) Valr medi: Alternativamente, ns puede interesar calcular el valr medi de una variable para determinads grups. Est l pdems hacer cmbinand la pción by ( bysrt) cn la función mean. By grup: egen nuevavariable = mean(variable1) Variables de cadena y numéricas Hems vist que en Stata hay diferentes tips de variables, básicamente las numéricas y las de cadena. A menud querrems cnvertir las variables de cadena en numéricas y, quizás, las numéricas en cadenas de text. Est l pdems hacer de ds mds diferentes: 4
Curs de intrducción a Stata Jrdi Muñz (UAB) Encde/decde: encde crea una nueva variable numérica basada en una variable de cadena usand el text de la variable riginal cóm etiquetas de valr. Decde realiza la peración inversa. encde variable, generate(nuevavariable) Destring/tstring: Si l que tenems es, meramente, una variable numérica que está guardada cm cadena en Stata, la pdems transfrmar en una variable numérica real usand la pción destring 5