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
*(Вопрос) Мой файл данных включает следующие переменные: 
	name (имя) group (группа) identification (идентификатор), а также  var1 var2 и var3.
* Для каждой уникальной комбинации значений трёх переменных name, group, identification, мне надо вывести таблицу всех наблюдений, которые характеризуются этой комбинацией. Кроме этого, надо вывести значения комбинации "name group identification" в начале каждого листинга. Может это быть как-то автоматизировано?

*(Ответ) Размещён в SPSSX-L в июле 2002 года. Автор: Raynald Levesque.
* http://www.spsstools.net.


SET MPRINT=yes.

DATA LIST LIST /name(A8) grp id var1 var2 var3.
BEGIN DATA
a 1 1 1 1 1
a 1 1 2 2 2
a 1 2 7 7 7
a 1 2 2 2 2
b 2 3 4 4 4 
b 2 3 5 5 4
END DATA.
LIST.
SAVE OUTFILE='c:\\temp\\data.sav'.


*//////////////.
DEFINE !print(!POS=!TOKENS(1) 
	/!POS=!TOKENSS(1) 
	/!POS=!TOKENSS(1))
TEMPORARY.
SELECT IF RTRIM(name)=RTRIM(!1) & grp=!2 & id=!3.
SUMMARIZE
  /TABLES=var1 to var3
  /FORMAT=VALIDLIST NOCASENUM TOTAL
  /TITLE=!QUOTE(!CONCAT(!UNQUOTE(!1),' ',!2,' ',!3))
  /MISSING=VARIABLE
  /CELLS=COUNT .
!ENDDEFINE.
*//////////////.


AUTORECODE VARIABLE name /INTO namecode.
SORT CASES BY namecode grp id.
COMPUTE casenb=$CASENUM.
RANK VARIABLES=casenb BY namecode grp id /RANK INTO r.
SELECT IF r=1.
WRITE OUTFILE='c:\\temp\\syntax.sps' /'!print "'name'" 'grp' 'id'.'.
EXECUTE.

GET FILE='c:\\temp\\data.sav'.
INCLUDE 'c:\\temp\\syntax.sps'.