全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1258 5
2012-09-15
有数据集A和B                                            怎么建立数据集C只含学生2和5的成绩之间的数据 ,其他都删掉
A                                   B
学生  成绩                       学生   成绩
1        56                          2       87
2        87                          5       90
3        78
4        80
5        90
.          .
.          .
.          .
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-9-15 23:37:41
data a;
   input id $ grade;
   cards;
1        56                  
2        87                 
3        78
4        80
5        90
6  89
7 90
;

data b;
    input id $ grade;
        cards;
2 87
5 90
;

data c;
    merge a b(in=b);
        by id grade;
        retain flag -1;
        if b then flag=flag*-1;
        if flag=1 or b;
        drop flag;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-16 16:27:11
大神理解错我的意思了,我主要想要以学生2和5的成绩为界限的在87--90之间的成绩,你的程序结果把成绩低于87的也算进来了。不过也非常感谢大神,也让我学到一招,还望大神再次赐教。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-16 16:28:15
pobel 发表于 2012-9-15 23:37
data a;
   input id $ grade;
   cards;
大神理解错我的意思了,我主要想要以学生2和5成绩为界限的在87--90之间的成绩,你的程序结果把成绩低于87的也算进来了。不过也非常感谢大神,也让我学到一招,还望大神再次赐教。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-16 17:40:31
data a;
    input id $ grade;
    cards;
1        56                  
2        87                 
3        78
4        80
5        90
6  89
7 90
;

data b;
     input id $ grade;
         cards;
2 87
5 90
;

data c;
    retain min max;
    if _N_=1 then do i=1 to 2;
               set b;
                   by grade;
                   if i=1 then min=grade;
                   else if i=2 then max=grade;
                end;
    set a;
        if grade>=min and grade<=max;
        drop i min max;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-12 11:03:26
pobel 发表于 2012-9-16 17:40
data a;
    input id $ grade;
    cards;
谢谢,太厉害了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群