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
* Из сервиса SPSS's AnswerNet,

*Тема: Проверка ошибок с использованием синтаксиса
   Описание:
*(Вопрос)
*   Два оператора ввели одни и те же данные в 2 разных файла.
*   Как можно в SPSS проверить их на расхождения?

*(Ответ).
* Допустим существование 2 предположительно идентичных файлов с N переменными в каждом.

* Переименуем переменные в 1-м файле и объединим его со 2-м.

* Суть процедуры проверки такова:.
 do repeat v=var_1 to var_n
   /w=var_n+1 to var_n+n
   /e=err_1 to err_n.
 if (v ne w) e=1.
 end repeat.
 compute newvar=sum(err_1 to err_n).
 Select if (newvar>=1).

* Отобранные наблюдения - те, в которых существуют расхождения. Остаётся сравнить данные из файлов
* с первичными документами и внести исправления.
* Если в результате не отобрано ни одного наблюдения, два файла полностью совпадают.

* Вот пример работы подобного синтаксиса:

 * Этот синтаксис создаёт пример данных.
 * НЕ ИСПОЛЬЗУЙТЕ ЕГО В ВАШЕМ СИНТАКСИСЕ.
 input program.
 loop.
 do repeat #r=var_1 to var_10.
 compute #r=trunc (uniform(5))+1.
 end repeat.
 end case.
 end loop.
 end file.
 end input program.
 exe.
 compute id=$casenum.
 save outfile = '@first@.sav'.
 exe.
 If (var_1=5) var_10=3.
 save outfile = '@second@.sav'.
 exe.

 * Можете использовать для проверки программный код, начиная с этого места.
 * Эта часть объединяет файлы и переименовывает переменные.
 match files file=*
   /file='@first@.sav'
   /rename (var_1 to var_10 = var_11 to var_20)
   /by id.
 exe.

 * Этот синтаксис осуществляет контроль ошибок.
 do repeat v=var_1 to var_10
   /w=var_11 to var_20
   /e=err_1 to err_10.
 if (v ne w) e=1.
 end repeat.
 exe.

 * Этот синтаксис создаёт новый файл, имеющий только индикатор записей ID
 * и переменные, содержащие ошибки.

 * Используйте этот файл для проверки правильности ввода данных.
 compute newvar=sum(err_1 to err_10).
 select if (newvar>=1).
 save outfile = '@third@.sav'
  /keep id err_1 to err_10.
 exe.
 get file '@third@.sav'.
 exe.

*   Создано: 22.10.2000 "