martes, 6 de octubre de 2015

Operadores para trabajar con subgrupos o submuestras


Stata por defecto aplicará todas las órdenes a todos los casos de la base de datos. Sin embargo, a menudo nos interesará trabajar solo con una sub muestra de ellos, ya sea por razones substantivas o de conveniencia para realizar cálculos y transformaciones. Existen diversas instrucciones para precisar a qué parte de los datos aplicar cada orden:

if. Es la instrucción principal para definir subgrupos. Usando if tras un comando aplicaremos la orden anterior sólo al subgrupo definido por la expresión lógica que precisemos: se realizará la operación sólo para aquellos casos que cumplan la condición definida por la expresión lógica. Como if trabaja con operadores lógicos, se trata de un mecanismo muy potente que nos permite definir casi cualquier tipo de subgrupo que podamos necesitar. Así podemos hacer referencia a valores de la misma variable a la que estemos aplicando la orden u otras variables de la base de datos. Podemos combinar condiciones de diversos modos. Ej. list make mpg if mpg>25

in. Si en lugar de definir una expresión lógica queremos aplicar la orden a un grupo de observaciones definido por su número de posición en la base de datos, usaremos la expresión in en lugar de if. Para indicar entre que observaciones queremos aplicar la orden usaremos los números de orden separados por una barra /. Ej. list price in 20/l 

by. Sirve, no para filtrar los casos como if, sino para segmentar la ejecución de la orden y hacerlo por los grupos definidos por la variable que acompañe a by. Ordena la base en sentido ascendente. El operador by es uno de los pocos elementos en Stata que rompe con la estructura básica de la sintaxis, puesto que se escribe delante del comando y no después como el resto. Así, escribiremos by variable [variable2]: comando. Ej. by foreign:  summarize rep78

bysort. Permite ejecutar una misma orden para diferentes categorías de una o más variables especificadas al tiempo que ordena los datos para poder realizarlo.Ej. bysort rep78: tabulate foreign

Operadores lógicos

& y
| o
! no
~ no
> mayor que
< menor que
>= mayor o igual
<= menor o igual que
== igual
!= no igual
~= no igual

Diferencia entre = y ==

Un error frecuente en Stata es confundir el uso del operador aritmético = con el lógico ==. Así, cuando queramos expresar una igualdad lógica deberemos usar el doble signo de igual (==) mientras que el simple (=) lo reservamos para operaciones aritméticas.



2 comentarios: