手中一个项目的ADMH中,需要生成一个受试者骨折时的年龄的变量,这个年龄计算很有代表性,我就拿过来分享一下。骨折时年龄计算基于受试者入组时的年龄、入组时间以及骨折时间,骨折时年龄值 = 入组时年龄 + 入组后到骨折时所经历的年份,FXAGEY = adsl.AGE + years between (fractue date - enrollment date)
。
这里值得讨论的就是这里入组后到骨折时所经历的年份如何计算?分为三种情况:
- 骨折日期不缺失 (XXXX-XX-XX),
use floor((fracture date, ASTDT - adsl.ENRLDT + 1) / 365.25)
; - 骨折日期日缺失 (XXXX-XX),
use (year(MHSTDTC) - year(ENRLDT)) + floor((month(MHSTDTC) - month(ENRLDT)) / 12)
; - 骨折日期月日都确实 (XXXX),
use (fracture year(MHSTDTC) - year(adsl.ENRLDT))
.
总的思路就是,如果日期完整就用日来计算所经历的年份;如果日缺失,就用年份和月份来计算所经历的年份;如果月日缺失,就用年份来计算所经历的年份。附上处理的代码,代码中有一点需要注意,对于取日期的年份函数(year)、月份函数(month),输入的日期必须时完整的日期。因此,需要对缺失日期进行填补使其完整。

网友评论