SPSS:想要跨许多不同的日期变量复制相同的 datediff 函数并生成多个结果变量
SPSS: Want to copy same datediff function across many different date variables and generate multiple result variables
总体而言,我对 SPSS 和统计程序还很陌生。我已经搜索过这个问题的答案,但似乎找不到直接的答案。
我有一个日期变量 (dateA),我想使用 datediff 函数将其与多个其他日期变量(date1、date2、date3...date1000+)进行比较,并为每个计算创建一个单独的 datediff 结果变量。
我已经尝试通过 SPSS 上的 "compute variable" 过程来做到这一点,但它只允许我一次选择一对日期(即为 date1 添加 "TO" 函数到 dateX 不会'不工作)。我宁愿创建一个自动化流程来自动为所有这些其他日期变量执行此功能,并为每个(datediff1、datediff2、datediff3 ...)创建 datediff 结果。
例如dateA - date1 = datediff1; dateA - date2 = datediff2; dateA - date3 = datediff3...等等(无需手动计算每个都需要永远)。
最终目标是找出这么多 datediff 结果中有多少 <= 2 周。
感谢您的帮助!
首先使用它来创建一些示例数据:
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.
总体而言,我对 SPSS 和统计程序还很陌生。我已经搜索过这个问题的答案,但似乎找不到直接的答案。
我有一个日期变量 (dateA),我想使用 datediff 函数将其与多个其他日期变量(date1、date2、date3...date1000+)进行比较,并为每个计算创建一个单独的 datediff 结果变量。
我已经尝试通过 SPSS 上的 "compute variable" 过程来做到这一点,但它只允许我一次选择一对日期(即为 date1 添加 "TO" 函数到 dateX 不会'不工作)。我宁愿创建一个自动化流程来自动为所有这些其他日期变量执行此功能,并为每个(datediff1、datediff2、datediff3 ...)创建 datediff 结果。
例如dateA - date1 = datediff1; dateA - date2 = datediff2; dateA - date3 = datediff3...等等(无需手动计算每个都需要永远)。
最终目标是找出这么多 datediff 结果中有多少 <= 2 周。
感谢您的帮助!
首先使用它来创建一些示例数据:
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.