全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3649 14
2012-09-12
大家好!
      我刚刚碰到删除重复记录的问题,想向大家请教。
      有一个数据集A:
      stkcd1   stkcd2  corr
         1           2        0.99
         2           4        0.98
         1           4        0.97
         3           4        0.91

       我希望按照Corr求出股票的对数,并且删除重复的,最后得到的结果如下:
         stkcd1   stkcd2  corr
         1           2        0.99
         3           4        0.91

        就是删掉了第二行和第三行,因为这两行包含了前面出现的股票1和股票2.

        请问有没有什么办法实现?

        谢谢老师!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-9-12 09:14:50
proc sql里select加distinct修饰符就行
但是你的需求挺怪的,呵呵
二维码

扫码加我 拉你入群

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

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

2012-9-12 09:26:49
playmore 发表于 2012-9-12 09:14
proc sql里select加distinct修饰符就行
但是你的需求挺怪的,呵呵
请问老师能够具体一点吗?我是在写配对交易的程序。首先求出了每两只股票之间的相关系数,然后根据相关系数选择。但是股票对不能够重复~
二维码

扫码加我 拉你入群

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

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

2012-9-12 09:28:59
playmore 发表于 2012-9-12 09:14
proc sql里select加distinct修饰符就行
但是你的需求挺怪的,呵呵
proc sql;
create table pairs as
select distinct * from a;
quit;

这就话达不到我希望的结果

二维码

扫码加我 拉你入群

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

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

2012-9-12 09:41:52
data test;
input stkcd1 $   stkcd2 $  corr;
cards;
1 2 0.99
2 4 0.98
1 4 0.97
3 4 0.91
4 2 0.92
7 8 0.97
3 7 0.99
5 6 0.89
a b 0.99
B c 0.88
c d 0.95
;

data wanted;
    set test;
        length stk_list $100;
        retain stk_list " ";
        if find(stk_list,stkcd1,"ti") or find(stk_list,stkcd2,"ti") then delete;
        stk_list=catx(" ",stk_list,stkcd1,stkcd2);
        drop stk_list;
run;
二维码

扫码加我 拉你入群

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

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

2012-9-12 09:50:59
pobel 发表于 2012-9-12 09:41
data test;
input stkcd1 $   stkcd2 $  corr;
cards;
谢谢老师!您这种做法是将股票代码转化为字符,然后用catx函数来连接的。

那么,进一步请问,股票代码不是字符,如果是数字,有没有类似数组的东西来解决这个问题呢?

谢谢!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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