Вычитание значений в разных строках в SPSS

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

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

V1 V2

1 2007/01/23

2 2007/02/25

. . . .

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

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

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


person Hei    schedule 28.04.2013    source источник
comment
последовательны ли значения v1, т.е. можно ли вычесть нечетные строки из четных?   -  person Ian Kenney    schedule 28.04.2013


Ответы (2)


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

person JKP    schedule 28.04.2013

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

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

Другим решением может быть использование функции «datediff»: общий синтаксис этой функции:

datediff(date1,date2,unit)

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

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

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

person mirirai    schedule 15.07.2014