Указать число действительных наблюдений в примечании к таблице
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | * (Вопрос) Как добавить сноску внизу каждой таблицы, которая бы содержала число наблюдений, принятых к обработке (действительных наблюдений, valid cases)? * (Ответ) Размещён в SPSSX-L. Автор: rlevesque@videotron.ca, 04.01.2002. ******************************. * Сначала «простое» решение. ******************************. 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()'Число действительных наблюдений ="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. **################. Следующий вариант – обобщение (почти тот же синтаксис, но оформленный как макрос). **################. 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'. */////////////////. * Первый параметр namemac нужен для того, чтобы дать имя макросу, который будет содержать нужную подпись. – А.Б. 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 "'Число действительных наблюдений ="aggrv_1"'!ENDDEFINE.". END IF. EXE. GET FILE='c:\\temp\\data.sav'. INCLUDE FILE='c:\\temp\\data.sps'. !ENDDEFINE. */////////////////. *******************. *** Пример 1 *****. *******************. GET FILE='c:\\temp\\data.sav'. * Вызовем макрос, который создаст ещё один макрос nb1, который будет содержать подпись. !getval namemac=nb1 vars=var1. * Загрузим файл данных заново. GET FILE='c:\\temp\\data.sav'. TABLES /FORMAT BLANK MISSING('.') /GBASE=CASES /FTOTAL= $t000001 "Итого" /TABLE=var1 + $t000001 BY (STATISTICS) /STATISTICS count( var1( F5.0 ) 'Частота') cpct( var1( PCT5.1 ) '% по столбцу') /SORT=D var1 /caption=!nb1. *******************. *** Пример 2 *****. *******************. GET FILE='c:\\temp\\data.sav'. * Вызовем макрос, который создаст подпись с числом действительных наблюдений одновременно для переменных var1 и var22. !getval namemac=nb2 vars=var1,var22. * Загрузим файл данных заново. GET FILE='c:\\temp\\data.sav'. TABLES /FORMAT BLANK MISSING('.') /GBASE=CASES /FTOTAL= $t000001 "Итого" /TABLE=var1 + $t000001 BY (STATISTICS) /STATISTICS count( var1( F5.0 ) 'Частота') cpct( var1( PCT5.1 ) '% по столбцу') /SORT=D var1 /caption=!nb2. * Разумеется, команда TABLES может быть заменена любой подходящей командой. |
Related pages
...