Using Syntax to Assign 'Variable Labels' and 'Value Labels' in SPSS

Preparing a dataset for analysis is an arduous process. Besides recoding and cleaning variables, a diligent data analyst also must assign variable labels and value labels, unless they choose to wait until after your output is exported to Microsoft Word. Unfortunately, that option only leaves additional opportunity for error and confusion, not to mention the inefficiency of editing tables in Microsoft Word. Who among us have not been frustrated while wrestling with Microsoft Word?

When used in conjunction with the customizable SPSS table "Looks" function, formatting your variable labels and value labels can make your SPSS results tables nearly ready for publication, immediately after analysis! Fortunately, SPSS syntax offers a fairly straightforward method for assigning proper labels to both your variable labels and value labels.

For those of you unsure about the distinction between the two:

Variable Labels: Variable labels are composed of a few words that describe what a variable represents. If the variable labels are properly formatted in SPSS, they will show in output tables and graphs, instead of variable names.

Value Labels: Value labels are labels for coded variables in our dataset. For example, "Gender" may be coded 0 (Males) and 1 (Females).

The screenshot below shows an example SPSS dataset I created for demonstration purposes (as you can see at the bottom of the screenshot, we are seeing the "variable view", as opposed to "data view". To review, "data view" is used for editing the actual data, whereas "variable view" is used for editing the attributes of the variables (such as number of decimal places allowed, type of variable, the variable name, variable label, and value label). In our example below, neither the variable labels (1) nor the value labels (2) have been assigned for any of our four example variables.

Variable View SPSS No Variable/Value Labels
Variable View SPSS No Variable/Value Labels

One way to rectify this problem would be to:

  1. Click in the field under "Label" for each variable and simply type in a label.
  1. Click in the field under "Value" (on the right side of the field, click on the button that appears when you click in the field initially; see below left)
  1. Enter the current number code that is assigned with the label that you desire for each code (clicking "add" between each code) in the dialogue that appears (see below right).
SPSS Value Labels Column

SPSS Value Labels Column

SPSS Dialog box for entering value labels

SPSS Dialog box for entering value labels

That would work fine if you only have a couple of variables, However, what if you have 10 variables, or 20, or 100... or 1000? Obviously, this can quickly turn into a ridiculously long process. This is when syntax makes things MUCH easier!

Here are the steps to assign variable labels:

  1. Open a new syntax window by clicking through the following menu path (see below): File->New->Syntax.
  1. Type the command "VARIABLE LABELS" (be careful of spelling).
  1. On the next line (new line not required, but recommended), first type the name of the variable you want to assign a label to (in my example, the variable is "Example1"; see below).
  1. On the same line as the variable name, insert a space, followed by a "single quote" (not a double quote/quotation mark), followed by whatever text you'd like to assign as the variable label for that variable, followed by another "single quote", and finally a period.

NOTE

: if that is all you wish to do, start a new line and type EXECUTE, followed by another period; If you want to also assign value labels, as we will here, you can save the EXECUTE until the end.

SPSS Variable Labels Syntax

SPSS Variable Labels Syntax

Here are the steps to assign value labels (in the same syntax window):

  1. Type the command "VALUE LABELS" (be careful of spelling).
  1. On the next line (new line not required, but recommended), type the name of the variable you want to assign a value labels to (in my example, the variable is "Example1"; see below).
  1. On the next line (new line not required, but recommended), type the number code that is currently in your data (to which you want to assign labels; in my example, the first code is 1), followed by a space...
  1. On the same line as the variable name, insert a space, followed by a "single quote", followed by the label you wish to assign to that numeric code, followed by another "single quote".
  1. On a new line, type the command EXECUTE, followed by a period, and then "run" the syntax.

NOTE

: repeat step 2 &3 for each numeric code that exists for that variable; Insert a period after the last code is entered for that variable.

NOTE: To run the syntax, highlight the portion you wish to run AND THEN click on the "green play button" in the tool bar OR click through the following menu path "Run-> Selection" OR press the keyboard shortcut ("Command+r" [for mac]; "Control+r" [for PC]).

SPSS Value Labels Syntax

SPSS Value Labels Syntax

While this may be useful, doing this with only one variable doesn't offer that much improvement over the "point and click" method. However, when you apply this technique to transform several variables simultaneously, the time saved really begins to accumulate (see below).

SPSS Syntax screen example 3
SPSS Syntax screen example 3

There are a few things to pay particular attention to when working with multiple variables at once:

  • Be sure to insert a period after every line in the variable label command (as pictured above).
  • When assigning value labels, a "variable TO variable" format can be used (see above), instead of listing each variable name separately, as long as the variables are in consecutive order in the dataset (and you want to assign the same labels to all of those variables). IF THEY ARE NOT in consecutive order, you simply need to list each of the names separately.
  • If you have want to assign different sets of value labels to various variables, you simply need to separate each set of value labels with a forward slash ( / ), and begin with the new variable name on the next line (see below).
SPSS Syntax screen example 4
SPSS Syntax screen example 4

After you run your syntax, you should now see the information you chose populating the "Label" and "Value" columns of your dataset (seen below).

SPSS data sheet screen example number 2
SPSS data sheet screen example number 2

NOTE: If you also want to specify what codes in your data signify that the data is missing ("Missing" column [see above]), add the following commands to your syntax:

To assign for a single variable:

MISSING VALUES

Example (999).

EXECUTE.

To assign for multiple variables:

MISSING VALUES

Example1 to Example4 (999).

EXECUTE.

NOTE:

I will post links below that will allow you to download sample SPSS syntax files used in this tutorial (download either or both below).

"SINGLE VARIABLE" EXAMPLE SYNTAX

"MULTI-VARIABLE" EXAMPLE SYNTAX

Update

on 2013-07-09 17:24 by Jeremy Taylor

A user recently submitted a fantastic question that I'd like to answer as a follow-up to this post (thanks, Eli!). The question was:

If already input four value labels, but now another value has appeared that didn't exist before and I need to add the new value label, is there a way to add the new label without having to re-enter the existing ones?

Eli asked this great question because if you simply use the same syntax on the variable but only list the one new label, the previously assigned labels will be erased/over-written by the one new label and you will be left with a variable with only the one label.

Another wonderful user, John Hall, astutely pointed-out that you can just use the Data Editor to manually add the value, which is 100% true.

However, for those of you that prefer to stick to syntax, there is a way to accomplish this with only a VERY minor adjustment to the syntax.

The following syntax will add one or more labels to a variable that already has existing assigned value labels, WITHOUT ERASING THE EXISTING LABELS:

ADD VALUE LABELS

[YOUR VARIABLE NAME HERE]

# '[YOUR LABEL HERE]'.

EXECUTE.

Replace [YOUR VARIABLE NAME HERE] with your variable's name (without the brackets) AND replace # with the new number you need to label AND replace [YOUR LABEL HERE] with whatever label you want to assign to that number (again, without the brackets).

You will notice the syntax is exactly the same, except you insert the word "ADD" at the beginning of the first line! Great question Eli!