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.