Analyzing data in SPSS can be done either by using the "point and click" pull-down-menu interface, or by using SPSS syntax language. Each has its plusses and minuses:

Point and click may be most useful if

• you are just getting started using statistical software.
• you are running basic statistical tests on ready-to-use data.
• you are running a limited number of tests.
• you are running tests a limited number of times.

Syntax programming may be most useful if

• you need to reformat your data extensively before running tests.
• you are running specialized statistical tests that are not available using the menu.
• you wish to run a large number of the same tests on different variables.
• you plan on running the same analyses over and over.

For this course, I recommend you become familiar with both methods, but use syntax for your statistical operations. Having a "dossier" of syntax commands will allow you to run multivariate statistics on more than one data set.

Below are common syntax commands for data management:

RECODE changes the values of existing variables. It recodes either into the same variable, or into other variable(s). You should always recode into a different variable, unless you are sure you want to over-write the existing variable. Many variables can be recoded at the same time. You can also label variables after you recode them.

RECODE var1 (3=1) (2=2) (1=3) INTO rvar1. This recodes into a different variable. RECODE var1 var2 (3=1) (2=2) (1=3) INTO rvar1 rvar2. This recodes many variables.

Example:

```RECODE YEARHOSP (85=1) (86=1) (87=1) (88=1) (89=1) (90=2) (91=2) (92=2) (93=2) (94=2) into DECADE .
EXECUTE.

1 '1980s'
2 '1990s' .

The "thru" subcommand enables recoding cases from one value through another:

RECODE YEARHOSP (80 thru 89=1) (90  thru 99=2) into DECADE.
EXECUTE.
1 '1980s'
2 '1990s' .```

COMPUTE is used to set variables = to existing variables, transformations of existing variables (such as means or sums), etc.

COMPUTE var1 = var2.

COMPUTE var1 = MEAN(a1 TO a6).

IF ELSE is a set of commands used to transform variables based on logical arguments. Note that only one logical statement can be made at a time.

IF (var1 > 2 AND var1< 1) var1 = var2.

Example:

```COMPUTE NUMREHAB = 0.
IF ((rhb1days GE 1) AND (rhb2days EQ 0)) NUMREHAB = 1.
IF ((rhb2days GE 1) AND (rhb3days EQ 0)) NUMREHAB = 2.
IF ((rhb3days GE 1) AND (rhb4days EQ 0)) NUMREHAB = 3.
IF ((rhb4days GE 1) AND (rhb5days EQ 0)) NUMREHAB = 4.
IF (rhb5days GE 1) NUMREHAB = 5 .
```
(note: you wil have to run this command and then go to your data window and choose "run pending transformations" in the "Transform" pull-down menu)

MISSING VALUES command tells SPSS which codes (SPSS allows up to three missing values for each variable) represent missing information.

Example:

```MISSING VALUES GCSER DRSATDC INDEPLEV (999) - assigns a missing value to cases with 999 for these three variables

MISSING VALUES ACUTDAYS (0, 999) - assigns a missing value to cases with 0 or 999 for this variable
```

Comparisons and logical operators

When variables are compared to numbers or other variables, the following keywords or signs can be used:

Key Symbol Meaning
EQ = Equal to
NE ~= Not equal to
GE >= Greater than or equal to
GT > Greater than
LE <= Less than or equal to
LT < Less than

Several conditions (comparisons) may be concatenated by AND (symbol: &) and/or OR (symbol: ¦). If two conditions are concatenated by AND, the whole expression is true only if both conditions are met. If two conditions are concatenated by OR, the whole expression is true if one of the conditions is met. Several conditions may be be concatenated by AND and/or OR clauses. In addition, you may specify, instead of a condition having to be met, a condition that must NOT (symbol: ~) be met. AND, OR and NOT are called logical operators.

It is usually highly recommended to use parentheses to clarify the priorities of clauses. For instance, you may be looking for single mothers in your data. You first will check whether a person is female (say, gender EQ 1) and if she is never married or divorced or widowed (say, famst EQ 3, 4 or 5); and if this is true, you have to check whether the number of children in the household is greater than 0 (nkids GT 0). Now if you write:

WRONG:

IF (gender EQ 1 AND famst EQ 3 OR famst EQ 4 OR famst EQ 5
AND nkids GT 0) singlemo = 1.

you will, e.g. code as single mothers all people who are divorced, no matter whether they have children or not and no matter whether they are female or not. This is because the IF clause becomes true if one of the conditions concatenated by OR is true, such as the condition famst EQ 4. The right way to get what you want is:

IF (gender EQ 1 AND (famst EQ 3 OR famst EQ 4 OR famst EQ 5)
AND nkids GT 0) singlemo = 1.

Here, all conditions concatenated by OR are counted, as it were, as one condition, and this condition is linked to the other conditions by AND.