data restructuring

data restructuring

Post by Geoff Matthe » Sun, 29 Jun 2003 01:00:05



I need to restructure a data set that is like so:

stud_id        question             response
1                 1a                   1
1                 2b                   2  
1                 3f                   4
1                 4d                   4
2                 1b                   2
2                 2c                   3
2                 3d                   4
2                 4d                   4

and have it come out as so:

stud_id        1a     1b     2b     2c   3d    3f    4d
1               1             2                 4     4
2                      2             3    4           4

Any suggestions would be greatly appreciated.

Geoff Matthews

 
 
 

data restructuring

Post by Raynald Levesqu » Sun, 29 Jun 2003 04:01:18




Quote:>I need to restructure a data set that is like so:

>stud_id        question             response
>1                 1a                   1
>1                 2b                   2  
>1                 3f                   4
>1                 4d                   4
>2                 1b                   2
>2                 2c                   3
>2                 3d                   4
>2                 4d                   4

>and have it come out as so:

>stud_id        1a     1b     2b     2c   3d    3f    4d
>1               1             2                 4     4
>2                      2             3    4           4

>Any suggestions would be greatly appreciated.

>Geoff Matthews

Hi

This is an automated way to do it:

Note that since variable names connot start with a digit, the syntax
defines variable labels equal to 1a, 1b etc.

DATA LIST LIST /stud_id(F8)        question(A8)
response(F8).
BEGIN DATA.
1                 1a                   1
1                 2b                   2  
1                 3f                   4
1                 4d                   4
2                 1b                   2
2                 2c                   3
2                 3d                   4
2                 4d                   4
END DATA.

AUTORECODE question /INTO qn.
SAVE OUTFILE='c:\temp\data.sav'.

*///////////.
DEFINE !vector(!POS=!TOKENS(1) /!POS=!TOKENS(1))
!DO !c=1 !TO !2
   !CONCAT(!1,!c," ")
!DOEND
!ENDDEFINE.
*///////////.

SORT CASES BY qn.
AGGREGATE OUTFILE=*
        /PRESORTED
        /BREAK=qn
        /question=FIRST(question).
STRING oldname (A8).
COMPUTE oldname=CONCAT("v",LTRIM(STRING(qn,F8))).
WRITE OUTFILE='c:\temp\label vars.sps' /"VARIABLE LABEL "oldname"
'"question"').".
EXECUTE.

COMPUTE nobreak=1.
AGGREGATE OUTFILE=*
        /PRESORTED
        /BREAK=nobreak
        /n=MAX(qn).
WRITE OUTFILE='c:\temp\define n.sps' /"DEFINE !n()"n(F8)"!ENDDEFINE.".
EXECUTE.
INCLUDE 'c:\temp\define n.sps'.

GET FILE='c:\temp\data.sav'.
VECTOR v( !n ).
COMPUTE v(qn)=response.
SET MPRINT=yes.
AGGREGATE OUTFILE=*
        /BREAK=stud_id
        /!vector v !n = MAX(!vector v !n).
SET MPRINT=no.
INCLUDE 'c:\temp\label vars.sps'.
EXECUTE.

HTH


Visit My SPSS Pages: http://pages.infinit.net/rlevesqu/index.htm

 
 
 

data restructuring

Post by Bruce Weave » Sun, 29 Jun 2003 05:27:36



> I need to restructure a data set that is like so:

> stud_id        question             response
> 1                 1a                   1
> 1                 2b                   2  
> 1                 3f                   4
> 1                 4d                   4
> 2                 1b                   2
> 2                 2c                   3
> 2                 3d                   4
> 2                 4d                   4

> and have it come out as so:

> stud_id        1a     1b     2b     2c   3d    3f    4d
> 1               1             2                 4     4
> 2                      2             3    4           4

> Any suggestions would be greatly appreciated.

> Geoff Matthews

Hi Geoff,
        Raynald's response shows how to do it in any version of
SPSS.  If your version has the Data Restructure Wizard
(version 10 and later I think?), you can actually do it with
a little less code, as follows:

DATA LIST LIST /stud_id(F8)        question(A8)
response(F8).
BEGIN DATA.
1                 1a                   1
1                 2b                   2
1                 3f                   4
1                 4d                   4
2                 1b                   2
2                 2c                   3
2                 3d                   4
2                 4d                   4
END DATA.
SORT CASES BY stud_id question .
CASESTOVARS
  /ID = stud_id
  /INDEX = question
  /GROUPBY = VARIABLE .

rename var (v1 to v7 = q1a q1b q2b q2c q3d q3f q4d).
list all.

Cheers,
Bruce
--
Bruce Weaver

www.angelfire.com/wv/bwhomedir/

 
 
 

1. data restructure

hi..
here is a question,i had seem the solution in
somewhere before,but i forget,maybe someone can
tell me how to do !!

var1    var2    var3
12      1       99
36      1       99
65      1       99
95      1       99   ***
78      2       99
15      2       99   ***
32      3       99
15      3       99
32      3       99   ***
55      1       98
95      1       98   ***
7       2       98
98      2       98   ***
25      3       98
32      3       98
22      3       98   ***

data that i want is

95      1       99      ***
15      2       99      ***
32      3       99      ***
95      1       98      ***
98      2       98      ***
22      3       98      ***

thanks~~!!

Morris

-----------------------------------------------------------------
< Yahoo! >  www.yahoo.com.tw

2. Some simple questions

3. Data restructuring

4. Can I get rich???

5. [Re: data restructure]

6. Locating file that have been changed added or overwriten during bind install

7. restructuring data

8. Loading and running programs in c64

9. Restructure data

10. Restructure data from a .sav file

11. Restructuring f77 Compiler for Meiko CS-1/CS-2

12. Looking for References: Tools which support restructuring

13. Restructuring f77 Compiler for Meiko CS-1/CS-2