如何从第一行减去第二行,从第三行减去第四行,依此类推

时间:2020-01-02 18:32:31

标签: sql sas calculated-columns proc-sql

我有SAS数据集,如所附图片所示。我要完成的工作是从总计列中创建一个新的计算字段,在其中我减去第一行第二行,第三行第四行等等。

到目前为止我尝试过的是

DATA WANT2;
SET WANT;
BY APPT_TYPE;
IF FIRST.APPT_TYPE THEN SUPPLY-OPEN; ELSE 'ERROR';
RUN;

这会引发错误,因为语句无效。

不确定该怎么做

My dataset

1 个答案:

答案 0 :(得分:0)

您在这里。对于您提供的有限信息,我将尽力而为。下次,请提供样本数据和您的预期输出。

data have;
input APPT_TYPE$ _NAME_$ Quantity;
datalines; 
ASON Supply 10
ASON Open 8
ASSN Supply 9
ASSN Open 7
S30 Supply 11
S30 Open 8
;

proc sort data = have;
    by APPT_TYPE descending _NAME_ ;
run;

data want;
    set have;
    by APPT_TYPE descending _NAME_;

    lag_N_Order = lag1(Quantity);
    N_Order = Quantity;
    Difference = lag_N_Order - N_Order;

    keep APPT_TYPE _NAME_ N_Order lag_N_Order Difference Type;
    if last.APPT_TYPE & last._NAME_ & Difference>0;
run;
相关问题