对数据集的相等值进行排序
Rank the equal values of a dataset
我是 sas 编程的新手,我有一个关于这个主题的问题。
Tengo una tabla de entrada así
CODE DESCRIPTION COUNT
NULL KIT-KAT 3
NULL KIT-KAT 3
NULL KIT-KAT 3
NULL FERRERO 2
NULL FERRERO 1
我想要这样的输出 table:
CODE DESCRIPTION COUNT COLUMN_I_WANT
NULL KIT-KAT 3 1
NULL KIT-KAT 3 2
NULL KIT-KAT 3 3
NULL FERRERO 2 1
NULL FERRERO 1 2
问题是我尝试按等级分组,我使用了 monotonic 并且我做了几件事,但是 none 其中对我有用,我希望它计算 a 的相等值字段但不重复该值,但在有 3 个重复值的情况下放入 1,2 ,3,如我在示例中输入的 table 中显示的那样。
这里我传递了我一直在测试的代码,它对我不起作用
proc sql;
create table test2 AS
select *, count(t2.descripcion_tpv) AS progressive
from rank_2 as t1
LEFT JOIN RANK_2 AS T2 ON (T1.DESCRIPCION_TPV = T2.DESCRIPCION_TPV)
GROUP BY t1.descripcion_tpv
ORDER BY t1.descripcion_tpv;
quit;
改用 by
组处理的数据步骤。
proc sort data=have;
by description;
run;
data want;
set have;
by description;
if(first.description) then rank = 0;
rank+1;
run;
输出:
CODE DESCRIPTION COUNT rank
NULL FERRERO 2 1
NULL FERRERO 1 2
NULL KIT-KAT 3 1
NULL KIT-KAT 3 2
NULL KIT-KAT 3 3
注意求和语句 rank+1
等同于:
retain rank 0;
rank = rank+1;
我是 sas 编程的新手,我有一个关于这个主题的问题。
Tengo una tabla de entrada así
CODE DESCRIPTION COUNT
NULL KIT-KAT 3
NULL KIT-KAT 3
NULL KIT-KAT 3
NULL FERRERO 2
NULL FERRERO 1
我想要这样的输出 table:
CODE DESCRIPTION COUNT COLUMN_I_WANT
NULL KIT-KAT 3 1
NULL KIT-KAT 3 2
NULL KIT-KAT 3 3
NULL FERRERO 2 1
NULL FERRERO 1 2
问题是我尝试按等级分组,我使用了 monotonic 并且我做了几件事,但是 none 其中对我有用,我希望它计算 a 的相等值字段但不重复该值,但在有 3 个重复值的情况下放入 1,2 ,3,如我在示例中输入的 table 中显示的那样。
这里我传递了我一直在测试的代码,它对我不起作用
proc sql;
create table test2 AS
select *, count(t2.descripcion_tpv) AS progressive
from rank_2 as t1
LEFT JOIN RANK_2 AS T2 ON (T1.DESCRIPCION_TPV = T2.DESCRIPCION_TPV)
GROUP BY t1.descripcion_tpv
ORDER BY t1.descripcion_tpv;
quit;
改用 by
组处理的数据步骤。
proc sort data=have;
by description;
run;
data want;
set have;
by description;
if(first.description) then rank = 0;
rank+1;
run;
输出:
CODE DESCRIPTION COUNT rank
NULL FERRERO 2 1
NULL FERRERO 1 2
NULL KIT-KAT 3 1
NULL KIT-KAT 3 2
NULL KIT-KAT 3 3
注意求和语句 rank+1
等同于:
retain rank 0;
rank = rank+1;