排序表后拉取数据

时间:2015-06-29 13:37:52

标签: sorting sas

我的问题是从数据中提取正确的变量。我的数据如下:

id   term  grade  number
35   2005   I       0
35   2005   F       1
35   2005   W       2
46   2003   A       0
46   2003   B       1
46   2003   F       2
46   2003   I       3 

我对表格进行了排序,并给出了数字0-1-2,依此类推。这是排序后的示例。我需要的是,如果相同的id成绩是从I和F以及W开始的。就像id 35.所以我需要在这个表中前三个观察ID 35。

1 个答案:

答案 0 :(得分:2)

这是一种Proc SQL方法,您也可以尝试2XDOW:

data have;
    input (id   term  grade) (:$8.)  number;
    cards;
35   2005   I       0
35   2005   F       1
35   2005   W       2
46   2003   A       0
46   2003   B       1
46   2003   F       2
46   2003   I       3 
;

proc sql;
    create table want as
        select * from have
            group by id
                having sum(GRADE='I' AND NUMBER=0) >0
                    AND  sum(GRADE='F' AND NUMBER=1) >0
                    AND sum(GRADE='W' AND NUMBER=2) >0
    ;
QUIT;