温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - How to tricky rank SAS?
sas

其他 - 如何对SAS进行技巧排名?

发布于 2020-04-09 11:19:24

例如,我有这样的数据,

KEY  first count

11Y    1
11Y    2
11N    3
11N    4
11Y    5
11N    6

我要这样放

    KEY  first count  RANKS

    11Y    1          1
    11Y    2          1
    11N    3          2
    11N    4          2
    11Y    5          3
    11N    6          4

我该怎么办?

谢谢

我做了这个

proc sort data=step3;
by first_count key;
run;

data step4;
set step3;
by key;
if first.key THEN ranks=1;
else ranks+1;
run;

这导致错误

错误:BY变量未在数据集WORK.STEP3上正确排序

查看更多

提问者
supercool djkazu
被浏览
35
data _null_ 2020-02-01 06:10

您需要NOTSORTED。

data key;
   input KEY:$3. count;
   cards;
11Y    1
11Y    2
11N    3
11N    4
11Y    5
11N    6
;
run;
data key2;
   set key;
   by key NOTSORTED;
   if first.key then rank+1;
   run;
proc print;
   run;

在此处输入图片说明