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
Замена строковой переменной с указателями AM/PM на "военный" формат времени в SPSS.
Описание:
Вопрос. 
Я пользуюсь SPSS. Мне прислали данные в формате (.SAV) (или, скажем, (.POR)).
Проблема в том, что мне нужно поменять время, указанное там время (в строковой переменной с AM/PM) представить в нормальном
(военном) формате времени. Как это сделать?
Ответ. 
Вот пример того, как можно сделать эту операцию через командный синтаксис SPSS. 
(Этот пример - модификация Реем решения, которое было предложено технической поддержкой SPSS Solution ID 100006716)

*Эта часть синтаксиса создаст пример данных. Не используйте эту часть с теми данными, которые у вас есть. 
DATA LIST /oldtime 1-8 (a). 
BEGIN DATA 
3:10 PM
 3:10 PM
12:20 AM 
4:55 AM 
10:12 PM 
12:08 PM 
END DATA. 

*Эта часть сделает то, что вам требуется с вашим файлом. Проверьте, что вы везде в синтаксисе
* поменяли имя 'oldtime' на имя той строковой переменной, содержащей время, которая есть в ваших данных.
*Переменная с новым (военным) форматом времени будет называться 'newtime'.

COMPUTE newtime=NUM(SUBSTR(oldtime,1,5),time). 
DO IF (INDEX(oldtime,'PM')>0  AND NOT (SUBSTR(oldtime,1,2)='12')). 
- COMPUTE NEWTIME=NEWTIME + 43200. 
ELSE IF ((SUBSTR(oldtime,1,2)='12') AND INDEX(oldtime,'AM')>0). 
- COMPUTE NEWTIME=NEWTIME - 43200. 
END IF. 
FORMATS newtime (time). 
EXE.