SAS编程

275:LOCF法(一)

2023-10-05  本文已影响0人  SASPRO的打工人生活

在创建分析数据集的时候,可能需要对缺失数据进行填补,LOCF(last observation carried forward)法是最常用的一种方法。

就如文字描述,简单点理解就是把上一个非缺失值继承下来。下面介绍一下实现LOCF的方法。

很多人可能看到继承,第一个想到的就是LAG函数,但是数据缺失可能会遇到好几种情况。可以看看下面的数据

方法一:

例子中的数据列举了两种缺失的情况,如果只是某个访视的数据缺失,用lag函数可以轻松实现缺失数据的填补(比如S002);但是如果是连续数据的缺失,那么lag函数可能就有点麻烦了。

可见对于连续缺失的数据,只是简单运用lag函数实现不了缺失数据的填补,我们继续完善程序。

DTYPE表明数据是采用什么方法衍生而来的。

方法二:利用数组

因为我们在处理数据的时候,这时候数据一般已经做成了一个参数一个访视一条记录,如果是访视在一条记录上,用数组就可以快速实现LOCF。

一个data步就实现了LOCF,之后我们只需要转置一下就可以了

如果已经是BDS那种数据结构,只是需要提前多转置一下,至于选那种方法,看你自己更理解哪一个,觉得哪一个更方便。

当然了,因为这个访视很规律,在实际做项目中,可能某个访视缺失就没有录入这个访视的数据,这时候我们可能也需要衍生出这个访视的记录。所以大家还需要认真检查一下数据。

至于程序代码,考虑到可能有不少同事关注我,以后对于需要QC的程序,就不直接提供代码了,避免到时候一起错,所以设置点门槛。当然了,你们也可以直接按照图片中的代码手动敲出来,关键的都展示了。

上一篇下一篇

猜你喜欢

热点阅读