如何在SAS中按日期规范化列?

时间:2019-06-01 08:42:59

标签: date sas normalize

我需要按月归一化数据。如何用SAS代码创建它? 我计算了日期差,并计划将值除以日期并乘以一个月的天数。但是,有些值不是每月收集的。例如,从Jul到Sep。因此,我需要将间隔值除以并输出Jul Aug Sep Sep行。

归一化的公式应为=值/日期差*(每月的天数)。请注意,某些收集日期位于月份的中间,因此需要从这两个月的比例中计算出标准化数据。

示例: 给定的日期2018年6月10日-2018年7月1日 对于日期01JUN2018 归一化值应为 总和(从2018年6月1日至2018年6月9日获得的值,从2018年6月10日至30年6月30日获得的值)

我已经计算了日期差,但是我不确定如何创建尚不存在的其他行以及规范化的值。

data work.test(drop=lag);
set work.assignment;
by group;
format date date9.;
date=intnx('month',collection_date,0,"BEGINNING");
lag=lag(collection_date);
if first.group then difference=0;
else difference=collection_date-lag;
run;

数据看起来像这样

Group   Collection_date   Value           
1       01Jul2018         0     
1       29Sep2018         3    
1       30Oct2018         3.5  
2       20Jan2018         0    
2       21Feb2018         4   
2       21Mar2018         3.5     

预期数据如下

Group   Collection_date   Value     Date        Normalized Value
1       01Jul2018         0      01Jul2018      
1                                01Aug2018      
1       29Sep2018         3      01Sep2018
1       30Oct2018         3.5    01Oct2018
2       20Jan2018         1      01Jan2018
2       21Feb2018         4      01Feb2018
2       21Mar2018         3      01Mar2018

0 个答案:

没有答案