【发布时间】:2014-03-12 13:41:27
【问题描述】:
我正在处理处方索赔数据。对象 X 有 20 行显示他开处方的日期。在观察 5 之前,他每月都按处方配药。这是时间块 1。下一个观察的填充日期为 2 年后,并且每月填充接下来的 15 行。这是时间区 2。
问题:如何计算每个时间段的用药时间?我不想包括受试者 x 没有服用他的处方的 2 年时间范围。
【问题讨论】:
我正在处理处方索赔数据。对象 X 有 20 行显示他开处方的日期。在观察 5 之前,他每月都按处方配药。这是时间块 1。下一个观察的填充日期为 2 年后,并且每月填充接下来的 15 行。这是时间区 2。
问题:如何计算每个时间段的用药时间?我不想包括受试者 x 没有服用他的处方的 2 年时间范围。
【问题讨论】:
可以分两步完成:首先,我们“标记”块;然后将它们分组。 您的数据集应按主题和日期(升序)进行预排序。
data have2;
set have;
by Subject;
if Date-lag(Date)>30 then Block+1;
if FIRST.Subject then Block=1;
run;
proc sql;
create table blocks as
select Subject, Block, max(Date)-min(Date) as Duration
from have2
group by Subject, Block;
quit;
【讨论】: