UCLA Academic Technology Services HomeServicesClassesContactJobs
Help the Stat Consulting Group by giving a gift             
Loading

NOTE: This page has been delinked.  It is no longer being maintained, and information on this page may be out of date.

SPSS FAQ
Reshaping a file from wide to long
Example #2

This page is adapted from the SPSS AnswerNet.  We are grateful to SPSS for permission to use provide their information to adapt and distribute this page from our web site.

Q.
I have a data set which contains one variable for each of three teachers for each case, called TEACH1, TEACH2 and TEACH3. I would like to restructure my data so that each teacher variable is on a separate case; in other words, so that there are three times as many cases as there are presently. Each teacher variable would now be represented by the variable TEACH, so that the three original variables aren't differentiated.

A.
You can restructure your data in several steps. By the way, this job is useful is you have multiple response data that are long
string variables which are not easily autorecoded or recoded. 

The first step is to save a system file which contains only one of the three teacher variables. You should also save a variable
which uniquely identifies the cases, so we can match pertinent information back to this case later. Do this for each of the three teacher variables.

In this example, let's call the identifier variable ID. When you save each of the system files, use the RENAME subcommand to
rename the teacher variables to the single variable TEACH. In the example below, FILE.SAV is the original system file, containing the variables TEACH1, TEACH2 and TEACH3.

GET file='file.sav'.
SAVE outfile='temp1.sav'/keep=id teach1/rename(teach1=teach).
SAVE outfile='temp2.sav'/keep=id teach2/rename(teach2=teach).
SAVE outfile='temp3.sav'/keep=id teach1/rename(teach3=teach).

Now add these files together:

ADD FILES file='temp1.sav'/file='temp2.sav'/file='temp3.sav'
/by id.

Now we have a file with three cases for each of the original cases. We can match this file to the original system file using
the TABLE subcommand to match each occurrence of an ID value to in the new file to the unique occurrence of that ID value in the original file:

MATCH FILES file=*/table='file.sav'/drop teach1 teach2 teach3
/by id.

UCLA Researchers are invited to our Statistical Consulting Services
We recommend others to our list of Other Resources for Statistical Computing Help
These pages are Copyrighted (c) by UCLA Academic Technology Services


The content of this web site should not be construed as an endorsement of any particular web site, book, or software product by the University of California.