SPSS macro makes for easy splitting of data into separate files of equal numbers

SPSS Macro

SPSS macro

If you frequently need to have your data split into equal groups, this SPSS macro is the way to go!  You can just tell it how many groups you want and the variable you want to create to store group belonging and WHAM!  it randomizes the list and adds a new field showing the groups.

In the code below I show two examples of the SPSS macro.  One that will randomize the group and split it out, the second allows you to use another variable before breaking them into groups (In case you want a certain order to them.)  Both macros greatly reduce the amount of work needed to do in SPSS.

 

 
*/////////////////////.
DEFINE !Rand_Group (Groups !TOKENS (1) / NewVar !TOKENS (1))
Match files file=* / DROP !NewVar.
Compute Rand=RV.UNIFORM(0,1).
SORT CASES BY Rand (A).
compute row=$casenum.
RANK VARIABLES=row (A) /NTILES (!Groups) into !NewVar /PRINT=YES /TIES=HIGH.
Match files file=* /drop row Rand.
VARIABLE LEVEL !NewVar (Nominal).
Var label !NewVar "Random Group".
Val labels !NewVar 1'One' 2'Two' 3'Three' 4'Four' 5'Five' 6'Six' 7'Seven' 8'Eight' 9'Nine' 10'Ten'.
Freq !NewVar.
!ENDDEFINE.
*/////////////////////.
!Rand_Group Groups=10 NewVar=Rand_GP.

/* If you want to first sort them on a variable the below macro will handle that for you.

*/////SPSS macro 2////////////////.
DEFINE !Group (Sorter !TOKENS (1) / Groups !TOKENS (1) / NewVar !TOKENS (1))
Match files file=* / DROP !NewVar.
SORT CASES BY !Sorter (A).
compute row=$casenum.
RANK VARIABLES=row (A) /NTILES (!Groups) into !NewVar /PRINT=YES /TIES=HIGH .
Match files file=* /drop row.
VARIABLE LEVEL !NewVar ( ORDINAL ).
Var label !NewVar "Group".
Val labels !NewVar 1'One' 2'Two' 3'Three' 4'Four' 5'Five' 6'Six' 7'Seven' 8'Eight' 9'Nine' 10'Ten'.
Freq !NewVar.
!ENDDEFINE.
*/////////////////////.
!Group Sorter=numords Groups=10 NewVar=Dec_Frequency.

Learning Macros | Raynald’s SPSS Tools

This page is a simple introduction to SPSS macros. There are several fully (line- by-line) commented examples of macro. Overview of several macro-related …

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.