SPSS Syntax Introduction


SPSS syntax is a language containing instructions for
analyzing and editing data and other SPSS commands.

SPSS users working directly from the menu may not actually see they syntax they're running. However, this is a terrible practice and we'll explain why in a minute. So let's download and open bank.sav -partly shown below- and jump right in.

SPSS Syntax - Data View of Bank.sav File

How to paste SPSS syntax?

Now let's suppose I'd like to gain some insight into the percentages of male and female respondents. I could first navigate to Analyze SPSS Menu Arrow Descriptive statistics SPSS Menu Arrow Frequencies as shown below.

SPSS Frequencies from Menu

I'll now move gender into the variable box and perhaps request a bar chart as well.

SPSS Frequencies - Main Dialog

Now clicking Ok may seem the obvious thing to do. A much better idea, however, is to click the Paste button. Upon doing so, a new SPSS window opens which is known as the Syntax Editor. It's recognized by the orange icon in its left top corner.

SPSS Syntax Editor Window Example

The Syntax Editor contains a FREQUENCIES command which holds the instructions we just gave SPSS in the Frequencies dialog. However, we don't see the frequency distribution and bar chart we asked for. This is because we still need to run the command we just created.

How to run SPSS syntax?

The simplest way to run syntax is to select the command(s) you'd like to run and click the “run selection” icon in your toolbar.

Select and Run Syntax

A faster way to run syntax is to use several shortkeys, especially

So let's now run our pasted syntax. On doing so, a new window will open, containing our frequency table and barchart. This is an output window which we'll discuss in our next tutorial.

SPSS Syntax - Frequencies Output Example

How to get SPSS syntax?

The right way to do basically anything in SPSS -editing and analyzing data, creating tables and charts and more- is by running syntax. So how to get syntax? First off, using the Paste button from the menus adds syntax to your syntax window. If you don't have a syntax window open yet, it'll open one for you. Options for opening a syntax window are

Open Syntax File by Drag and Drop

If you've a syntax window open, you still need the actual syntax. Options to get the syntax you need are

Now, typing syntax may seem like a crazy thing to do at this point. However, typing syntax is much easier than it seems because most of it can be dramatically simplified.

Writing simpler syntax

The syntax we just pasted from the menu was:


Now typing all that manually is a lot of work. However, we'll get the exact same results if we run:

frequencies gender

Just typing and running this is much faster and easier than clicking through all menu options. So if you want to get real good -and real fast- with SPSS, start learning short syntax. This will take some practice but it will save you tons of time and effort in the longer run.

SPSS Syntax Files

We can now save all contents of our Syntax Editor as a syntax file by going to File SPSS Menu Arrow Save as... The resulting syntax file has the .sps (for “SPSS syntax”) file extension and is a plain text file. You can open, edit and save it with SPSS or any text editor such as Notepad++.
When saving syntax in newer SPSS versions, something like * Encoding: UTF-8. may be added. Just leave and ignore this, it's not meant for you but, rather, some kind of “note to self” from SPSS.

Why even use SPSS syntax?

The single best SPSS practice is doing everything from syntax. Some reasons for this are

So say you run 10 tables and charts from the menu. And then you realize you should have filtered out all respondents working in IT. Now you have to start all over again: remove the unwanted respondents and click your way through all the same menus and dialogs again... Sounds like a terrible idea. Doesn't it? Unfortunately, I see students having to do days of SPSS work all over again on a daily basis. Not working from syntax really is the very worst SPSS practice.
So say I run those 10 tables and charts and I saved all syntax. Then I realize I should have filtered out all respondents working in IT. Ok. No problem. I'll just add SELECT IF (jtype <> 3). to the top of my syntax and rerun all tables and charts in one go.

Thanks for reading!

Tell us what you think!

*Required field. Your comment will show up after approval from a moderator.