Path: janda.org/c10 > Overview of SPSS > Modify and Recode
Statistical Package for the Social Sciences

Syntax for Modify and Recode Commands

 

SPSS allows you to modify the values of existing variables as well as create new variables based on transformations of those variables.
  • Use the RECODE command to change the values of a particular variable.
  • Use the COMPUTE command to create a new variable based on arithmetic or logical transformations of an existing variable or variables.

COMPUTE

creates a new variable from a combination or transformation of existing variables.

 

Suppose you have these variables, INCOME99 and INCOME89 and want to create a new variable, NETCHANGE. This command computes the net change in income between 1999 and 1989:
COMPUTE NETCHANGE= INCOME99 - INCOME89

 

You should then label the variable to know what you've computed:
VARIABLE LABELS NETCHANGE
'Net Change in personal income in 1989 1999'.
To express this change in percentage terms specify:
COMPUTE PCTCHANGE=((INCOME99-INCOME89)/INCOME89)*100
VARIABLE LABELS PCTCHANGE
'Pct Change CDBG Allocation, 1985-89'
COMPUTE allows any combination of arithmetic operators and numeric constants on the right side of the equals sign. Arithmetic operations include:
+ Addition
* Multiplication
- Subtraction
/ Division
** Exponentiation
Insert blanks before and after an operator to improve readability .
Use parentheses to control the order of calculation.
You may also use numeric, arithmetic, and statistical functions with the COMPUTE command.

RECODE

changes the coding scheme of an existing variable on a value-by-value basis or for a range of values.

 

For example: This command changes the coding order for CITYTYPE from 51="Central City," 52="Non-Central City," and 61="Urban County" to 1, 2, and 3:
RECODE CITYTYPE (51=1) (52=2) (61=3)
VALUE LABELS CITYTYPE 1 'Central City'
2 'Non-Central City' 3 'Urban County'.
 
The thru subcommand enables recoding cases from one value through another:
RECODE AGE (18 thru 35=1) (36 thru 60=2) (61 thru 99=3).
VALUE LABELS AGE 1 'Young' 2 'middle age' 3 'Old'.

IF

computes a new variable for a case after testing the case for a specific condition


IF ([any varname] [logical expression])
[any varname]=[arithmetic expression].
Consider these examples:
IF (BIRTH GT 1950) AGE = 1.
IF (BIRTH LE 1950 and BORN GE 1900) AGE = 2.
IF (BIRTH LT 1900) AGE = 3.

The above commands would produce codes that might be labeled:

VALUE LABELS AGE
1 'Born after 1950'
2 'Born in 1900-1950'
3 'Born before 1900'.

The arithmetic expressions >, <, = can be used in place of the logical expressions GT, LT, and EQ. The expression LE means "less than or equal to" and GE means "greater than or equal to."

SELECT IF

Extracts only those cases that pass the test for the specified condition


SELECT IF ([any varname] [logical expression]).
 
Consider these examples:
SELECT IF (BIRTH GT 1950).
[Selects for analysis only respondents born after 1950.]
 
IF (BIRTH LE 1950 and BORN GE 1900).
[Selects for analysis only respondents born between 1900 and 1950.]