2013-04-28 4 views
1

Я совершенно новый в SPSS и теперь пытаюсь написать синтаксис для манипулирования своим набором данных.Вычитайте значения в разных строках в SPSS

у меня теперь есть набор данных, который выглядит следующим образом:

V1 V2

1 2007/01/23

2 2007/02/25

. . . .

Первая строка «V1» - это номер строки, а вторая строка «V2» - это дата.

Я хотел бы найти разницу между датами «V2» для каждых двух последующих строк и создать новый третий столбец данных для результата.

Однако я понятия не имею, как сделать вычитание для данных в двух разных строках.

+0

- значения последовательности v1, то есть вы можете вычесть четные строки из четных? –

ответ

3

Посмотрите на функцию задержки. Это дает вам доступ к предыдущим строкам. Если вам нужно рассчитать значения в прямом направлении, посмотрите команду SHIFT VALUES.

1

Я предполагаю, что вас интересует количество дней, которые лежат между двумя датами. Функция «ctime.days» преобразует значение вычитания в число дней.

COMPUTE ddiff = ctime.days(v2 - LAG(v2)). 
EXECUTE. 

Другим решением будет использовать функцию "DATEDIFF": Общий синтаксис этой функции:

datediff(date1,date2,unit) 

В вашем случае вы должны использовать следующий синтаксис:

COMPUTE ddiff = datediff(v2,LAG(v2),"days"). 
EXECUTE. 

Второе решение немного более гибкое, так как вы можете выбрать другие единицы вывода, такие как «годы», «кварталы», «месяцы», «недели» и т. Д.