全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6241 5
2016-11-03
我现在有两个数据集[img=0,1]file:///C:\Users\ah\AppData\Roaming\Tencent\Users\861494088\QQ\WinTemp\RichOle\A{PS~UGCH@U7~Z6@PK5PJTJ.png[/img] 表1 表2
希望通过stkcd和f2进行合并,并计算每一支股票每一年的EPS与feps_mean的差作为变量difference。最终的表里有stkcd,f2,eps,feps_mean和difference,请教各位应该如何写代码。
二维码

扫码加我 拉你入群

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

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

全部回复
2016-11-3 17:06:28
data test1;
input stkcd $ year asset eps;
cards;
000001 1998 123 0.5
000001 1999 234 0.7
000002 1998 123 0.5
000002 1999 234 0.7
;
run;

data test2;
input stkcd $ f2 feps_mean;
cards;
000001 1999 0.6
000001 2000 0.8
000002 1999 0.1
000002 2000 0.2
;
run;

proc sql;
create table test as
select coalesce(test1.stkcd,test2.stkcd) label='stkcd', f2, eps, eps-feps_mean as difference from test1 inner join test2
on test1.stkcd=test2.stkcd and year=f2;
quit;
二维码

扫码加我 拉你入群

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

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

2016-11-4 09:34:34
接楼上的数据,使用merge练一下
proc sort data=test1
        by stkcd year;
run;
proc sort data=test2
        by stkcd f2;
run;

data test;
        merge test1(in=t1) test2(rename=(f2=year) in=t2);
        by stkcd year;
        if t1 and t2 ;
        diff=feps_mean-eps;
run;
proc print;
run;
二维码

扫码加我 拉你入群

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

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

2016-11-5 22:40:37
用merge的时候要排序 与rename;用sql 直接join year=f2
二维码

扫码加我 拉你入群

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

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

2016-11-10 08:31:54
baiyaoqian 发表于 2016-11-4 09:34
接楼上的数据,使用merge练一下
proc sort data=test1
        by stkcd year;
谢谢
二维码

扫码加我 拉你入群

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

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

2016-11-10 08:32:22
lovexialulu 发表于 2016-11-5 22:40
用merge的时候要排序 与rename;用sql 直接join year=f2
谢谢你的解答
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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