SAS根据出生年份和完整的结束日期计算年龄

Ter*_*rah 3 numeric sas

我的数据集只给出了出生年份.我想根据个体被诊断患有糖尿病的时间来计算年龄.例如,我的诊断日期是31Jan2002和出生年份1964.yrdob变量不是日期变量 - 它只是数字,每次我尝试使它成为日期变量,所以我可以使用yrdif函数,它使所有1965年,而不是将yrdob视为一年,而不是1960年以后的天数.

因此我的问题是:

如何获取一个数值变量,该数值变量应按面值解释(1965年意味着1965年 - 而不是一千六百五十五)并使其成为日期变量,以便我可以使用yrdif函数计算年龄?

Joe*_*Joe 5

MDY功能将使用数字来表示日期.所以,例如,

datevar = mdy(1,1,yearvar);
Run Code Online (Sandbox Code Playgroud)

将为1月1日(年)制作日期变量.(这是仅知道年份时的默认值).

因此,为了获得年龄差异,您可以使用

age=yrdif(diagdate,mdy(1,1,yearvar),'AGE');
Run Code Online (Sandbox Code Playgroud)


mjs*_*squ 5

使用该MDY功能并组成月和日的值,例如:

date_yrdob = mdy(1,1,yrdob);
Run Code Online (Sandbox Code Playgroud)

哪个设定date_yrdob为1月1日的任何一年yrdob.