* (Q) How can I add a footnote at the bottom of each table showing the number of valid cases used? * (A) Posted to SPSSX-L by rlevesque@videotron.ca on 2002/01/04. ******************************. * First a "simple" solution. ******************************. SET MPRINT=ON. DATA LIST LIST /id(F8) var1(F8). BEGIN DATA. 1 10 2 15 3 10 4 20 5 25 6 15 7 25 8 9 END DATA. LIST. SAVE OUTFILE='c:\\temp\\data.sav'. COMPUTE nvalid=(NMISS(var1)=0). COMPUTE aggrv = 1 . AGGREGATE /OUTFILE* /BREAK=nvalid /aggrv_1 = SUM(aggrv). DO IF nvalid=1. WRITE OUTFILE 'c:\\temp\\data.sps' /"DEFINE !sum_1()'Number of valid cases ="aggrv_1"'!ENDDEFINE.". END IF. EXE. GET FILE='c:\\temp\\data.sav'. INCLUDE 'c:\\temp\\data.sps'. *General Tables. TABLES /FORMAT BLANK MISSING('.') /GBASE=CASES /FTOTAL= $t000001 "Total" /TABLE=var1 + $t000001 BY (STATISTICS) /STATISTICS count( var1( F5.0 )) cpct( var1( PCT5.1 ) 'Col %') /SORT=D var1 /caption=!sum_1 . ***END OF JOB. **################. Next section is to generalize the process. **################. DATA LIST LIST /id(F8) var1(F8) var22(F8). BEGIN DATA. 1 10 1 2 15 2 3 10 4 4 20 . 5 25 5 6 15 4 7 25 . 8 . 5 9 . . END DATA. LIST. SAVE OUTFILE='c:\\temp\\data.sav'. */////////////////. DEFINE !getval(namemac=!TOKENS(1) /vars=!CMDEND) COMPUTE nvalid=(NMISS(!vars)=0). COMPUTE aggrv = 1 . AGGREGATE /OUTFILE* /BREAK=nvalid /aggrv_1 = SUM(aggrv). DO IF nvalid=1. !LET !tmp=!QUOTE(!CONCAT('DEFINE !',!namemac,'()')) WRITE OUTFILE 'c:\\temp\\data.sps' /!tmp "'Number of valid cases ="aggrv_1"'!ENDDEFINE.". END IF. EXE. GET FILE='c:\\temp\\data.sav'. INCLUDE FILE='c:\\temp\\data.sps'. !ENDDEFINE. */////////////////. *******************. *** Example 1 *****. *******************. GET FILE='c:\\temp\\data.sav'. * Call macro to define the macro containing the number of cases. !getval namemac=nb1 vars=var1. * Reload the data file. GET FILE='c:\\temp\\data.sav'. *General Tables. TABLES /FORMAT BLANK MISSING('.') /GBASE=CASES /FTOTAL= $t000001 "Total" /TABLE=var1 + $t000001 BY (STATISTICS) /STATISTICS count( var1( F5.0 )) cpct( var1( PCT5.1 ) 'Col %') /SORT=D var1 /caption=!nb1. *******************. *** Example 2 *****. *******************. GET FILE='c:\\temp\\data.sav'. * Call macro to define the macro containing the number of cases where both var1 and var22 exist. !getval namemac=nb2 vars=var1,var22. * Reload the data file. GET FILE='c:\\temp\\data.sav'. *General Tables. TABLES /FORMAT BLANK MISSING('.') /GBASE=CASES /FTOTAL= $t000001 "Total" /TABLE=var1 + $t000001 BY (STATISTICS) /STATISTICS count( var1( F5.0 )) cpct( var1( PCT5.1 ) 'Col %') /SORT=D var1 /caption=!nb2. * Of course the above TABLES command would be changed to show whatever is required.