SPSS IF – Calcular una variable para una selección de casos

En SPSS, IF calcula una variable nueva o existente
para una selección de casos.
Para analizar una selección de casos, use FILTER o SELECT IF en su lugar.

SPSS si el tutorial reemplaza el rango por función

Archivo de datos utilizado para ejemplos

Todos los ejemplos usan bank.sav, una breve encuesta de empleados bancarios. Parte de los datos se muestran a continuación. Para aprovechar al máximo este tutorial, le recomendamos que descargue el archivo y pruebe los ejemplos usted mismo.

SPSS If Vista de datos del tutorial

Ejemplo 1: marcar casos según la función de fecha

Señalemos a todos los encuestados nacidos durante los años 80. La siguiente sintaxis calcula primero nuestra variable de marca -born80s- como una columna de ceros. Luego lo establecemos en uno si el año -extraído desde la fecha de nacimiento- está en el RANGO 1980 a 1989.

* Crear una nueva variable que contenga solo ceros.
calcular born80s = 0.

* Establezca el valor en 1 si el encuestado nació entre 1980 y 1989.
if (range (xdate.year (dob), 1980,1989)) born80s = 1.
ejecutar.

* Opcionalmente: agregue etiquetas de valor.
agregar etiquetas de valor born80s 0 ‘No nacido durante los 80’ 1 ‘Nacido durante los 80’.

Resultado

SPSS If Tutorial Marcar selección de casos

Ejemplo 2 – Reemplazar rango de valores por función

A continuación, si realizáramos un histograma en horas de trabajo semanales, horas, veríamos valores de 160 horas o más. Sin embargo, las semanas solo tienen (24 * 7 =) 168 horas.

Asumimos que estos encuestados completaron su mensual -en lugar de semanalmente- horas de trabajo. En promedio, los meses se mantienen (52/12 =) 4.33 semanas. Por lo tanto, dividiremos las horas semanales entre 4,33, pero solo para los casos con puntajes de 160 o más.

* Ordenar casos de forma descendente en horas semanales.
ordenar casos por horas (d).

* Divida 160 o más horas entre 4.33 (promedio de semanas por mes).
if (whours> = 160) whours = whours / 4.33.
ejecutar.

Resultado

SPSS si el tutorial reemplaza el rango por función

Nota

También podríamos haber hecho esta corrección con RECODE: RECODE whours (160 = 36.95) (180 = 41.57). Sin embargo, tenga en cuenta que RECODE se vuelve tedioso en la medida en que debemos corregir valores más distintos. Funciona razonablemente para esta variable pero IF funciona muy bien para todas variables

Ejemplo 3: calcular la variable de manera diferente según el género

Ahora marcaremos casos que trabajan a tiempo completo. Sin embargo, “tiempo completo” significa 40 horas para los empleados varones y 36 horas para las empleadas. Entonces necesitamos usar diferentes fórmulas basadas en el género. El siguiente comando IF hace exactamente eso.

* Calcular a tiempo completo manteniendo solo ceros.
calcular a tiempo completo = 0.

* Establezca a tiempo completo en 1 si whours> = 36 para mujeres o whours> = 40 para hombres.
if (género = 0 & whours> = 36) tiempo completo = 1.
if (género = 1 y whours> = 40) a tiempo completo = 1.

* Opcionalmente, agregue etiquetas de valor.
agregar etiquetas de valor a tiempo completo 0 ‘No funciona a tiempo completo’ 1 ‘Trabaja a tiempo completo’.

*Comprobación rápida.
significa whours por género a tiempo completo
/ celdas min max media stddev.

Resultado

Nuestra sintaxis termina con una tabla de MEDIOS que muestra mínimos, máximos, medias y desviaciones estándar por género por grupo. Esta tabla, que se muestra a continuación, es una buena manera de verificar los resultados. SPSS si la tabla de resultados de verificación por medios

El máximo para las mujeres que no trabajan a tiempo completo es inferior a 36. El mínimo para las mujeres que trabajan a tiempo completo es 36. Y así sucesivamente.

SPSS IF versus DO IF

Algunos usuarios de SPSS pueden estar familiarizados con DO IF. Las principales diferencias entre DO IF y IF son que

  • IF es un comando de una sola línea, mientras que DO IF requiere al menos 3 líneas: DO IF, algunas transformaciones y END IF.
  • IF es un comando COMPUTE condicional, mientras que DO IF también puede afectar otras transformaciones, como RECODE o COUNT.
  • Si los casos cumplen con más de 1 condición, el primero la condición prevalece cuando se usa DO IF – ELSE IF. Si utiliza varios comandos IF en su lugar, el último Condición cumplida por cada caso surte efecto. La sintaxis a continuación esboza esta idea.

DO IF – ELSE IF Versus Multiple IF Commands

* HAGA SI: los encuestados que cumplen ambas condiciones obtienen el resultado_1.
hacer si (condición_1).
resultado_1.
más si (condición_2). / * excluye casos que cumplen la condición_1.
resultado_2.
terminara si.

* SI: los encuestados que cumplen ambas condiciones obtienen el resultado_2.
if (condición_1) resultado_1.
if (condición_2) resultado_2. / * incluye casos que cumplen la condición_1.

SPSS IF VERSUS RECODE

En muchos casos, RECODE es una alternativa más fácil para IF. Sin embargo, RECODE también tiene más limitaciones.
En primer lugar, RECODE solo reemplaza (rangos de) constantes, como 0, 99 o valores perdidos del sistema, por otras constantes. Entonces algo como recodificación general (sysmis = q1). es imposible -q1 es una variable, no una constante, pero if (sysmis (global)) global = q1. funciona bien. No puede RECODEAR una función -mean, sum o lo que sea- en nada ni recodificar nada en una función. Necesitará IF para hacerlo.

Segundo, RECODE solo puede establecer valores basados ​​en una sola variable. Esta es la razón porque no puedes recodificar 2 variables en una pero puede usar una condición IF que involucra múltiples variables: if (género = 0 & whours> = 36) tiempo completo = 1. Es perfectamente posible.

Sin embargo, puede sortear esta limitación combinando RECODE con DO IF. De este modo, nuestro último ejemplo muestra una ruta diferente para marcar hombres y mujeres que trabajan a tiempo completo utilizando diferentes criterios.

Ejemplo 4: Calcular la variable de manera diferente según el género II

* Recodificar las whours en tiempo completo para todos.
recodificar whours (40 thru hi = 1) (else = 0) en fulltime2.

* Aplicar diferente recodificación para mujeres encuestadas.
hacer si (género = 0).
recodificar whours (36 thru hi = 1) (else = 0) en fulltime2.
terminara si.

* Opcionalmente, agregue etiquetas de valor.
agregar etiquetas de valor fulltime2 0 ‘No funciona a tiempo completo’ 1 ‘Trabaja a tiempo completo’.

*Comprobación rápida.
significa whours por género a tiempo completo2
/ celdas min max media stddev.

Notas finales

Este tutorial presenta una breve discusión del comando IF con un par de ejemplos. Espero que les hayan sido útiles. Si me perdí algo esencial, por favor envíeme un comentario a continuación.

Última actualización del artículo: 13/09/2023