0

我正在处理处方索赔数据。对象 X 有 20 行显示他开处方的日期。在观察 5 之前,他每月都按处方配药。这是时间块 1。下一次观察的填充日期为 2 年后,并且每月填充接下来的 15 行。这是时间区 2。

问题:如何计算每个时间组的用药时间?我不想包括受试者 x 没有填写他的处方的 2 年时间范围。

4

1 回答 1

0

可以分两步完成:首先,我们“标记”块;然后将它们分组。您的数据集应按主题和日期(升序)进行预排序。

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;
于 2014-02-13T16:52:59.207 回答