在SPSS中,DATEDIFF
函数用于计算两个日期之间的差值(以指定的时间单位)。当需要对多组日期变量执行相同的日期差计算时,手动逐个编写会很繁琐。
DO REPEAT start_date = date1 date2 date3
/end_date = date1_end date2_end date3_end
/diff_var = diff1 diff2 diff3.
COMPUTE diff_var = DATEDIFF(end_date, start_date, "days").
END REPEAT.
EXECUTE.
DEFINE !datediff_repeat(start_vars=!CMDEND / end_vars=!CMDEND / diff_vars=!CMDEND)
!DO !i = 1 !TO !LENGTH(!start_vars)
COMPUTE !CONCAT(!diff_vars,!i) = DATEDIF(!CONCAT(!end_vars,!i), !CONCAT(!start_vars,!i), "days").
!DOEND
!ENDDEFINE.
* 调用宏
!datediff_repeat
start_vars=date1 date2 date3
end_vars=date1_end date2_end date3_end
diff_vars=diff1 diff2 diff3.
EXECUTE.
BEGIN PROGRAM PYTHON.
import spss
date_pairs = [
("date1", "date1_end", "diff1"),
("date2", "date2_end", "diff2"),
("date3", "date3_end", "diff3")
]
for start, end, diff in date_pairs:
spss.Submit(f"COMPUTE {diff} = DATEDIFF({end}, {start}, 'days').")
spss.Submit("EXECUTE.")
END PROGRAM.
以上方法可以根据实际需求选择最适合的一种,DO REPEAT是最简单直接的方式,而Python扩展则提供了最大的灵活性。
没有搜到相关的文章