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
> > Дата:         23 мая 1996 г.
> > Ответ на:     David Marso <marso@SPSS.COM>
> > Отправитель:  "SPSSX(r) Discussion" <SPSSX-L@UGA.CC.UGA.EDU>
> > От кого:      David Marso <marso@SPSS.COM>
> > Организация:  SPSS Inc
> > Тема:         На: Сравнение файлов данных

Duanren Yuan писал:
>
>      Уважаемые участники SPSSX-L,
>
>      Не поможете ли решить такую проблему. Я попросил двух человек сделать
>      дублирующий ввод данных. Они использовали один и тот же набор вопросников.
>      Теперь мне надо проверить, совпадают ли полученные файлы данных.
>      Как можно сделать это в SPSS? Все предложения будут приняты с благодарностью.
>
>      Jeremy Yuan




* Пример файлов данных * .
DATA LIST /ID (F1) NX NY NZ (3F1) SX SY SZ (3A1).
BEGIN DATA
1124ABC
2245SEF
3234DFG
END DATA.
SAVE OUTFILE 'F1'.

DATA LIST /ID (F1) NX NY NZ (3F1) SX SY SZ (3A1).
BEGIN DATA
1123ABC
2345SEF
3234DFH
END DATA.
SAVE OUTFILE 'F2'.

* Допустим, что оба файла отсортированы по идентификаторной переменной ID,
 ID в обоих файлах совпадают, переменные одни и те же (т.е. строковые переменные одинаковой длины и т.д.)*.

ADD FILES FILE 'F1' / IN=ONE / FILE='F2' / IN=TWO / BY ID .
DO IF TWO.
DO REPEAT V=NX NY NZ SX SY SZ /TAG=TNX TNY TNZ TSX TSY TSZ.
COMPUTE TAG=(V<>LAG(V)).
END REPEAT.
END IF.
COMPUTE DIFF=SUM(TNX TO TSZ).
FORMATS TNX TNY TNZ TSX TSY TSZ (F1).
LIST.

*Результат выполнения команды LIST такой:.
ID NX NY NZ SX SY SZ ONE TWO TNX TNY TNZ TSX TSY TSZ     DIFF

 1  1  2  4 A  B  C   1   0   .   .   .   .   .   .       .
 1  1  2  3 A  B  C   0   1   0   0   1   0   0   0      1.00
 2  2  4  5 S  E  F   1   0   .   .   .   .   .   .       .
 2  3  4  5 S  E  F   0   1   1   0   0   0   0   0      1.00
 3  2  3  4 D  F  G   1   0   .   .   .   .   .   .       .
 3  2  3  4 D  F  H   0   1   0   0   0   0   0   1      1.00