8. 用SPSS“日期函数”计算起止日期间隔及用途(分享之8)
福建省疾控中心 潘宝骏(13509366051@163.com)
* 用 SPSS 的“日期函数”,计算“某年月日”到另一“某年月日”
起止日期的间隔,有许多用途:
例如: a.计算起止日期的秒数/日数/月数/年数;
b.起止日期的间隔天数(接触-发病的“潜伏期”天数);
c.出生日期-当今日期的“实足天数”“实足月数”“实足岁数”等:.
* SPSS 中的日期格式,建议用 dd-mmm-yyyy.
* SPSS 中的日期,是从 1582.10.15 起算的 '秒数',
也可转变为 '天数'。例如今天是 25-DEC-2021:.
*(1) 例如有10个人,“接触病人日期 beg”,“发病日期 sto”,
请计算各间隔几天:潜伏期天数;注意:大量数据时要建立数据库.
DATA LIST FREE /id(N2) beg(DATE) sto(DATE).
BEGIN DATA.
1 1-DEC-2021 7-DEC-2021
2 2-DEC-2021 10-DEC-2021
3 3-DEC-2021 12-DEC-2021
4 4-DEC-2021 14-DEC-2021
5 5-DEC-2021 16-DEC-2021
6 6-DEC-2021 18-DEC-2021
7 7-DEC-2021 20-DEC-2021
8 8-DEC-2021 22-DEC-2021
9 9-DEC-2021 24-DEC-2021
10 10-DEC-2021 25-DEC-2021
END DATA.
*(1)计算起止日期的间隔天数(接触-发病的天数):.
* 计算 1582.10.15 到“今天”(25,12,2021)的天数(id=1 时:13859769600天):.
COMPUTE today = DATE.DMY(22,12,2021).
* 计算 1582.10.15 到“开始日期 beg”的天数(id=1 时:160390天):.
COMPUTE x1 = CTIME.DAYS(beg).
* 计算 1582.10.15 到“终止日期 sto”的天数(id=1 时:160396天):.
COMPUTE x2 = CTIME.DAYS(sto).
* 计算“开始日期 beg”到“终止日期 sto”的天数(id=1 时:6天):.
COMPUTE 间隔d=x2-x1.
LIST VARIABLES=id beg sto 间隔d /CASES=FROM 1 TO 10.
* 输出结果:
id beg sto 间隔d
1 01-DEC-2021 07-DEC-2021 6.00
2 02-DEC-2021 10-DEC-2021 8.00
3 03-DEC-2021 12-DEC-2021 9.00
4 04-DEC-2021 14-DEC-2021 10.00
5 05-DEC-2021 16-DEC-2021 11.00
6 06-DEC-2021 18-DEC-2021 12.00
7 07-DEC-2021 20-DEC-2021 13.00
8 08-DEC-2021 22-DEC-2021 14.00
9 09-DEC-2021 24-DEC-2021 15.00
10 10-DEC-2021 25-DEC-2021 15.00
*--------------------------------------------------------------------------.
*(2)计算起止日期的间隔年数(出生-今年的岁数):.
* 例如 10 个人的出生日期见下表,请计算其“实足天数”“实足月数”“实足岁数”:
注意:大量数据时要建立数据库.
DATA LIST FREE /id(N2) beg(DATE) sto(DATE).
BEGIN DATA.
1 01-DEC-2020 25-DEC-2021
2 02-DEC-2018 25-DEC-2021
3 03-DEC-2011 25-DEC-2021
4 04-DEC-1992 25-DEC-2021
5 05-DEC-1982 25-DEC-2021
6 06-DEC-1972 25-DEC-2021
7 07-DEC-1962 25-DEC-2021
8 08-DEC-1952 25-DEC-2021
9 09-DEC-1942 25-DEC-2021
10 10-DEC-1939 25-DEC-2021
END DATA.
* 计算 1582.10.15 到“今天”(25,12,2021)的天数:.
COMPUTE today = DATE.DMY(25,12,2021).
* 计算 1582.10.15 到“出生日期 beg”的天数:.
COMPUTE x1 = CTIME.DAYS(beg).
* 计算 1582.10.15 到“今年日期 sto”的天数:.
COMPUTE x2 = CTIME.DAYS(sto).
* 计算“出生日期 beg”到“今年日期 sto”的“实足天数”“实足月数”“实足岁数”:.
COMPUTE 实足天数=x2-x1.
COMPUTE 实足月数=(x2-x1)/365.25*12.
COMPUTE 实足岁数=(x2-x1)/365.25.
LIST VARIABLES=id beg sto 实足天数 实足月数 实足岁数 /CASES=FROM 1 TO 10.
* 输出结果:
id beg sto 实足天数 实足月数 实足岁数
1 01-DEC-2020 25-DEC-2021 389.00 12.78 1.07
2 02-DEC-2018 25-DEC-2021 1119.00 36.76 3.06
3 03-DEC-2011 25-DEC-2021 3675.00 120.74 10.06
4 04-DEC-1992 25-DEC-2021 10613.00 348.68 29.06
5 05-DEC-1982 25-DEC-2021 14265.00 468.67 39.06
6 06-DEC-1972 25-DEC-2021 17916.00 588.62 49.05
7 07-DEC-1962 25-DEC-2021 21568.00 708.60 59.05
8 08-DEC-1952 25-DEC-2021 25219.00 828.55 69.05
9 09-DEC-1942 25-DEC-2021 28871.00 948.53 79.04
10 10-DEC-1939 25-DEC-2021 29966.00 984.51 82.04


雷达卡




京公网安备 11010802022788号







