如何从第一行减去第二行,从第三行减去第四行等等
How to subtract second row from first, fourth row from third and so forth
我有附图中的 SAS 数据集。我想要完成的是从总计列创建新的计算字段,我在其中减去第一行 - 第二行,第三行 - 第四行等等..
到目前为止我尝试过的是
DATA WANT2;
SET WANT;
BY APPT_TYPE;
IF FIRST.APPT_TYPE THEN SUPPLY-OPEN; ELSE 'ERROR';
RUN;
这会引发错误,因为语句无效..
不太确定该怎么做
My dataset
给你。我能用你提供的有限信息做的最好的。下次请提供示例数据和您的预期输出。
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;
我有附图中的 SAS 数据集。我想要完成的是从总计列创建新的计算字段,我在其中减去第一行 - 第二行,第三行 - 第四行等等..
到目前为止我尝试过的是
DATA WANT2;
SET WANT;
BY APPT_TYPE;
IF FIRST.APPT_TYPE THEN SUPPLY-OPEN; ELSE 'ERROR';
RUN;
这会引发错误,因为语句无效..
不太确定该怎么做
My dataset
给你。我能用你提供的有限信息做的最好的。下次请提供示例数据和您的预期输出。
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;