SPSS:想要在许多不同的日期变量中复制相同的datediff函数并生成多个结果变量

时间:2017-01-03 03:06:49

标签: spss

我对SPSS和统计程序一般都很陌生。我已经搜索了这个问题的答案,但似乎找不到直截了当的答案。

我有一个日期变量(dateA),我希望与其他多个日期变量(date1,date2,date3 ... date1000 +)与datediff函数进行比较,并为每个计算创建一个单独的datediff结果变量。

我已尝试通过SPSS上的“计算变量”过程执行此操作,但它只允许我一次选择一对日期(即为date1 TO dateX添加“TO”函数不起作用)。我宁愿创建一个自动化过程来自动为所有这些其他日期变量执行此函数,并为每个变量创建datediff结果(datediff1,datediff2,datediff3 ...)。

e.g。 dateA - date1 = datediff1; dateA - date2 = datediff2; dateA - date3 = datediff3 ...依此类推(无需手动计算每个人将永远计算)。

最终目标是找出这些许多日期结果中有多少< = 2周。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

首先使用它来创建一些样本数据:

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.