*(Вопрос) Мне требуется слить файлы по двум переменным по принципу "много-ко-многим". * Первый файл содержит 2 переменных: --первая переменная содержит уникальные значения, --вторая переменная задаёт подгруппы для значений первой переменной, т.е. её значения не обязательно уникальны. * Второй файл имеет переменную, аналогичную второй переменной из первого файла. * Опять же, её значения неуникальны. * Цель - слить эти два файла так, чтобы записи из первого файла повторились столько раз, сколько записей из второго файла удовлетворяют условию "вторая переменная из первого файла = переменной из второго файла". * Пример: *Первый файл V1 V2 1 A 2 A 3 A 4 B 5 B. *Второй файл A A B. *Результат должен быть таков: 1 A 2 A 3 A 1 A 2 A 3 A 4 B 5 B. *(Ответ) Размещён в новостной группе SPSS 29.03.2002, автор: Raynald Levesque. DATA LIST LIST /v1(F8.0) v2(A1). BEGIN DATA 1 A 2 A 3 A 4 B 5 B END DATA. SORT CASES BY v2. SAVE OUTFILE='c:\\temp\\datafile1.sav'. NEW FILE. DATA LIST LIST /v2(A1). BEGIN DATA A A B END DATA. SAVE OUTFILE='c:\\temp\\datafile2.sav'. ***** Слияние. GET FILE='c:\\temp\\datafile2.sav'. COMPUTE nobreak=1. AGGREGATE /OUTFILE=* /BREAK=v2 /nb = N(nobreak). MATCH FILES TABLE=* /FILE='c:\\temp\\datafile1.sav' /BY v2. WEIGHT CASES BY nb. * Для большинства практических задач такой вариант даст нужный вам результат. * В том же случае, если вам действительно нужны дубликаты наблюдений (не только взвешенное их число), см. синтаксис "Восстановление перекрёстной таблицы в исходный файл.SPS" на http://www.spsstools.net/SampleSyntax.htm#ReadWriteOrCreateData .