SPSS: хотите скопировать одну и ту же функцию датированного числа во многие переменные даты и сгенерировать несколько переменных результата

Я очень новичок в SPSS и статистических программах в целом. Я искал ответ на этот вопрос, но не могу найти простой ответ.

У меня есть одна переменная даты (dateA), которую я хочу сравнить с несколькими другими переменными даты (date1, date2, date3...date1000+) с помощью функции datediff и создать отдельную переменную результата datediff для каждого вычисления.

Я попытался сделать это с помощью процесса "вычислить переменную" в SPSS, но он позволяет мне выбирать только пару дат за раз (т.е. добавление функции "TO" для date1 TO dateX не работает). Я предпочел бы создать автоматизированный процесс, чтобы эта функция автоматически выполнялась для всех этих других переменных даты, и создавать результаты datediff для каждого (datediff1, datediff2, datediff3...).

например, dateA - date1 = datediff1; dateA - дата2 = дата2; dateA - date3 = datediff3... и т. д. (без необходимости вычислять каждый вручную, что заняло бы вечность).

Конечная цель состоит в том, чтобы выяснить, сколько из этих многих датированных результатов <= 2 недели.

Спасибо за вашу помощь!

1 ответ

Решение

Сначала используйте это, чтобы создать пример данных:

DATA LIST FREE /dateA date1 date2 date3 (4ADATE10).
BEGIN DATA
1/1/2017 1/2/2017  1/7/2017   1/12/2017
1/2/2017 1/16/2017  1/10/2017  1/14/2017
1/3/2017 1/29/2017  2/1/2017  2/7/2017
END DATA.

Теперь, чтобы создать новый набор переменных, содержащих разницу между датами, которые вы можете использовать do repeat Чтобы просмотреть даты и сравнить их:

do repeat DtList=date1 to date3/Diff=Diff1 to Diff3.
    compute Diff=datediff(DtList, dateA, "weeks").
end repeat.

* now you can count the number of dates that have a two weeks difference or more.
COUNT Weeks2p=Diff1 Diff2 Diff3 (2 thru Hi).

Но если все, что вам нужно, это получить окончательный счет, вы можете сделать это без создания всех переменных различий, например:

compute Weeks2p=0.
do repeat DtList=date1 to date3/Diff=Diff1 to Diff3.
    compute Weeks2p=Weeks2p + (datediff(DtList, dateA, "weeks") ge 2).
end repeat.
Другие вопросы по тегам