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
*(Вопрос) Мы хотели бы вставить пустые записи в файл для тех клиентов, у кого
присутствуют не все записи. Обычно пропуски случаются в середине
месяца. Например, для клиента номер 123 у нас есть записи от
1.3.00, 2.3.00, 6.3.00 и 7.3.00, но нет записей от 3-го, 4-го и 5-го числа. 
* Как можно их вставить?.

*(Ответ) Решение размещено в новостной группе SPSS 03.11.2002. Автор: Raynald Levesque.

DATA LIST LIST /id(F8.0) date1(SDATE).
BEGIN DATA
122 2000/1/1
122 2000/1/2
123 2000/3/1
123 2000/3/2
123 2000/3/6
END DATA.
LIST.
VARIABLE WIDTH date1(11).
SORT CASES BY id date1(A).

DO IF $CASENUM>1 & id=LAG(id).
COMPUTE days1=CTIME.DAYS(date1-LAG(date1)).
END IF.

CREATE days2=LEAD(days1,1).

COMPUTE #oneday=60*60*24.
DO IF MISSING(days2) OR days2=1.
XSAVE OUTFILE='c:\\temp\\temp.sav'.
ELSE.
LOOP cnt=1 TO days2.
+	COMPUTE date1=LAG(date1)+#oneday*cnt.
+	XSAVE OUTFILE='c:\\temp\\temp1.sav'.
END LOOP.
END IF.
EXECUTE.
ADD FILES FILE='c:\\temp\\temp.sav'
	/FILE='c:\\temp\\temp1.sav'
	/DROP=days1 days2 cnt.

SORT CASES BY id date1(A).