在SAS中存储过程平均变量
我想将TXN和TPV段的P1 P50 P99(段有10个不同的名称)保存到单独的变量中。但是,当我运行这段代码时,所有行只存储整体(所有段)p1p50 P99 我想要的是取决于应该添加的片段P1 P50 P99在SAS中存储过程平均变量,sas,Sas,我想将TXN和TPV段的P1 P50 P99(段有10个不同的名称)保存到单独的变量中。但是,当我运行这段代码时,所有行只存储整体(所有段)p1p50 P99 我想要的是取决于应该添加的片段P1 P50 P99 请帮我做这件事,原谅我说话不好 尝试按段使用,而不是按类使用。注意:您必须首先按段对数据集进行排序。如果您希望将每个段的摘要数据合并到正确的行中,则需要按合并,而不是使用如果_N_=1 您需要: 按段对源数据集进行排序 使用NWAY选项从平均值输出数据集中消除“总计”观测值(\u TYP
请帮我做这件事,原谅我说话不好 尝试按段使用
,而不是按类使用。注意:您必须首先按段对数据集进行排序。如果您希望将每个段的摘要数据合并到正确的行中,则需要按合并,而不是使用如果_N_=1
您需要:
按段对源数据集进行排序
使用NWAY选项从平均值
输出数据集中消除“总计”观测值(\u TYPE=0)
将输出数据集合并回源
因此,完整的解决方案应该是这样的:
proc means data=har.&seg_cell n mean std p1 p50 p99;
class segment;
var txn tpv;
output out=stat_1 (drop = _TYPE_ _FREQ_)
P1(txn)=txn_P1_T P1(tpv)=tpv_P1_T
P99(txn)=txn_P99_T P99(tpv)=tpv_P99_T
;
where POS_flag = &POS and cell=&gcell;
title "Stat Summary - Test_POS";
run;
data har.&seg_cell;
if _N_=1 then set stat_1;
set har.&seg_cell;
run;
就我所知,nway
选项并不是绝对必要的,但也许最好还是使用它。否则,我猜您可能会在最终数据集中得到一个额外的(不匹配的)观察结果。
proc sort data=har.&seg_cell;
by segment;
run;
proc means nway data=har.&seg_cell n mean std p1 p50 p99;
class segment;
var txn tpv;
output out=stat_1 (drop = _TYPE_ _FREQ_)
P1(txn)=txn_P1_T P1(tpv)=tpv_P1_T
P99(txn)=txn_P99_T P99(tpv)=tpv_P99_T;
where POS_flag = &POS and cell=&gcell;
title "Stat Summary - Test_POS";
run;
data har.&seg_cell;
merge har.&seg_cell stat_1;
by segment;
run;