RECODE

O comando RECODE é usado para alterar alguns ou todos os valores de uma variável. Os novos valores podem ser armazenados na mesma variável ou em uma nova.

Simples exemplo:

RECODE var1 var2 (1,2 = 1) (3,4 = 2).

Mais complexo exemplo:

RECODE var1 (1,2 = 1) (3 a 8 = 2) (falta = 99) (else = cópia)
INTO var1novo.

General

Suma que temos variável famimpor com valores 1, 2, 3 e 4, medindo o quão importante é ter uma família para o respondente.

RECODE famimpor (4=3).

Isso muda todas as ocorrências do valor 4 para o valor 3. O valor original 3 permanece inalterado. (Se voce tem etiquetas de valor, talvez voce deva muda-las agora de acordo). Todos os outros valores permanecem inalterados, também.

RECODE famimpor (1,2 =1) (3,4 = 2).

Isto cria uma variável dicotômica com ponto de corte entre 2 e 3.

RECODE famimpor (1=4) (2=3) (3=2) (4=1).

Isto inverte a ordem dos valores. Note que isto pode ser alcançado mais facilmente com o comando COMPUTECOMPUTE famimpor = 5 - famimpor.). Isto pode ser útil se houver muitas categorias.

Criar Novas Variáveis

Um problema é que todos os exemplos acima mudam os valores originais da variável. Você deve fazê-lo apenas se você puder reconstruir os valores originais a partir dos novos (isso seria possível apenas no último exemplo!) ou se você tiver certeza absoluta de que tem uma cópia válida do seu conjunto de dados em outro lugar. Felizmente, você pode criar novas variáveis com o comando RECODE adicionando INTO NEWVAR. Veja os seguintes exemplos.

RECODE famimpor (1,2 =1) (3,4 = 2) INTO famimpod.

Isto cria uma variável dicotômica com ponto de corte entre 2 e 3. A variável antiga permanece intacta, entretanto, e a variável dicotômica é adicionada ao conjunto de dados com o nome famimpod (com “D” indicando que você tem uma variável dicotômica. Eu uso tais dispositivos memotechnic com bastante frequência, mas claro que você não precisa.)

Nota, no entanto, que você tem que tomar algumas precauções ao RECODERAR uma nova variável. Neste caso, você tem que ter certeza de que a nova variável tem todos os valores válidos que você deseja que ela tenha. Se o comando RECODE nomear apenas parte dos valores, todos os outros valores serão tratados como valores ausentes no sistema. No entanto, há uma maneira fácil de lidar com este problema.

WRONG: RECODE famimpor (4=3) INTO famimpon.

Isto mudaria todas as ocorrências do valor 4 para o valor 3. Entretanto, todos os outros valores seriam tratados como faltando o sistema. Aqui está a melhor maneira:

RECODE famimpor (4=3) (ELSE=COPY) INTO famimpon.

Isso muda todas as ocorrências do valor 4 para o valor 3, e todos os outros valores são copiados para a nova variável. Claro, você pode fazer quantas recodificações explícitas quiser e depois lidar com o resto via ELSE=COPY.

A parte ELSE do comando RECODE não está restrita ao caso “COPY” que acabou de ser explicado. Você também pode usá-lo com valores explícitos, como no exemplo a seguir:

RECODE famimpor (4,3=2) (ELSE=1) INTO famimpor.

Um problema com RECODE INTO, entretanto, é que as etiquetas de variáveis e valores não são criadas automaticamente (como elas deveriam?). Então não se esqueça de rotular a nova variável.

Variáveis transversais

podem ser tratadas em uma declaração RECODE, desde que todas as variáveis sejam afetadas da mesma forma, como no exemplo a seguir.

RECODE famimpor workimpo chldimpo (4,3=2) (ELSE=1).

No entanto, se desejar RECODE estas variáveis INTO novas variáveis, para cada variável é necessário um RECODE linha de comando separado.

Tratamento de valores ausentes

Valores ausentes podem ser abordados através das palavras-chave “sysmis” ou “missing”.

Partir do princípio de que, além dos valores 1 a 4, existem também os valores 8 e 9 que são definidos como valores ausentes. Aqui estão alguns exemplos e o que eles fazem.

RECODE famimpor (missing = 8).

Todos os valores em falta (ou seja, valores 8 e 9 e talvez também valores em falta no sistema) terão o valor 8. 8 ainda será definido como missing.

RECODE famimpor (missing = 7).

Todos os valores em falta (i.e., os valores 8 e 9 e talvez também os valores em falta no sistema) terão o valor 7. 7 não será definido como missing!

Se você tiver valores ausentes no sistema e quiser recodificar apenas estes para outro valor, você pode usar a palavra-chave “sysmis” em vez de “missing”.

RECODE famimpor (sysmis = 7).

Again, se você tiver definido os valores 8 e 9 como missing, 7 não será reconhecido como um valor (anteriormente) em falta. Você pode querer definir 7 agora como faltando ou atribuir uma etiqueta de valor que lhe diz o significado de 7.

Simplificações

Muitas vezes, vários valores de uma variável têm que ser endereçados. Algumas palavras-chave ajudam a facilitar este processo.

RECODE famimpor (lowest thru 3 = 3).
RECODE famimpor (2 thru highest = 2).

O primeiro comando recodifica todos os valores do valor mais baixo para (e incluindo) o valor 3 para o valor 3. O segundo comando recodifica todos os valores do valor 2 para (e incluindo) o valor mais alto para o valor 2. Note que “lowest” pode ser abreviado como “lo” e “highest” como “hi”. CUIDADO: Assumindo que 8 e 9 ainda estão definidos como valores ausentes do usuário, estes serão recodificados para 2 no último exemplo (e claro que não serão mais definidos como ausentes).

Deixe uma resposta

O seu endereço de email não será publicado.