SPSS Básico 02 – Criando variáveis com condição
Autor: Lucas | Publicado: 2012-10-04T09:44:00-03:00


Para criar variável cujos valores variam de acordo com determinada condição utilizamos o comando DO IF. A sintaxe do comando é mostrada a seguir: 

DO IF 
  COMPUTE...
ELSE IF 
  COMPUTE…
ELSE.
  COMPUTE…
END IF.
 

A condição deve ser uma expressão que retorna um valor do tipo verdadeiro ou falso. Como exemplo, suponha que a tabela que estamos trabalhando possui a variável do tipo data DATA_COMPRA e queremos criar a variável FDS indicando se a data da compra ocorreu em um final de semana. A variável recebe o valor 1 se a compra ocorreu em um final de semana e o valor zero caso contrário. O código para realizar essa operação é mostrado a seguir. 

DO IF ANY(XDATE.WKDAY(DATA_COMPRA), 1, 7).
COMPUTE FDS = 1.
ELSE.
COMPUTE FDS = 0.
END IF.
FORMATS FDS(F1).
VALUE LABELS 1 ‘SIM’ 0 ‘NAO’.
EXECUTE.



A seguir as observações em relação ao código: 


- A função XDATE.WKDAY(data) retorna um número entre 1 e 7 indicando o dia da semana da data passada como parâmetro, onde 1 indica domingo e 7 sábado. 


- A função ANY(variável, item1, item2, ...) recebe uma variável e vários valores que a variável pode assumir. Se a variável assume alguns dos valores passados como parâmetro ela retorna verdadeiro, caso contrário retorna o valor falso. No caso, a instrução ANY(XDATE.WKDAY(DATA_COMPRA), 1, 7) retorna verdadeiro se XDATE.WKDAY(DATA_COMPRA) é igual a 1 ou 7, ou seja, se o dia da semana da data de compra é domingo ou sábado. A função ANY é útil para evitar trabalhar cada possibilidade combinações excessiva de condições. Poderíamos obter o mesmo resultado substituindo a primeira linha de nosso código por: 

DO IF  XDATE.WKDAY(DATA_COMPRA) = 1 OR XDATE.WKDAY(DATA_COMPRA) = 7.



- O comando VALUE LABELS define os rótulos dos valores da nova variável FDS. 


Operadores lógicos e relacionais


A tabela abaixo mostra os operadores lógicos disponíveis. No SPSS as expressões lógicas retornam 1 se verdadeiras e 0 se falsas. 




Operador

Descrição

Sintaxe alternativa


=

Igualdade

EQ


~=

Desigualdade

NE, ¬=, &lt;&gt;


&lt;&nbsp;

Menor

LT


&lt;=

Menor ou igual

LE


&gt;&nbsp;

Maior

GT


&gt;=

Maior ou igual

GE


&amp;

E lógico

AND


|

OU lógico

OR


~

Não lógico

NOT







A terceira coluna mostra sintaxes alternativas para os operadores. O operador de desigualdade, por exemplo, possui quatro formas possíveis. Na primeira coluna estão as formas que costumo utilizar em meus códigos. Em minha opinião as formas com as siglas dos operadores (EQ, NE, LT, etc.) podem causar confusão para aqueles que não são familiares com a sintaxe do SPSS. 



Operadores lógicos e valores Missing


Um cuidado especial deve ser tomado com expressões lógicas que podem receber valores missing. A tabela abaixo mostra os resultados dos operadores &amp; e | para as diversas expressões. 




Expressão

Resultado


[verdadeiro] AND [verdadeiro]

[verdadeiro]


[verdadeiro] AND [falso]

[falso]


[falso] AND [falso]

[falso]


[verdadeiro] AND [missing]

[missing]


[missing] AND [missing]

[missing]


[falso] AND [missing]

[falso]


[verdadeiro] OR [verdadeiro]

[verdadeiro]


[verdadeiro] OR [falso]

[verdadeiro]


[falso] OR [falso]

[falso]


[verdadeiro] OR [missing]

[verdadeiro]


[missing] OR [missing]

[missing]


[falso] OR [missing]

[missing]






Lembre-se sempre de consultar o arquivo de ajuda do SPSS. Ele é a principal referência da sintaxe. 


&nbsp;

Abraços,

Lucas Rodrigues