楼主: 抽抽鳗鱼
6319 5

[问答] SAS中如何依据两个变量合并 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

初中生

52%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
101 点
帖子
12
精华
0
在线时间
8 小时
注册时间
2015-3-8
最后登录
2016-11-24

楼主
抽抽鳗鱼 发表于 2016-11-3 15:31:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我现在有两个数据集[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,请教各位应该如何写代码。
二维码

扫码加我 拉你入群

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

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

关键词:变量合并 difference Tencent erence DIFFER 如何

沙发
l1i2n3i4n5g 在职认证  发表于 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;

藤椅
baiyaoqian 发表于 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;

板凳
lovexialulu 发表于 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
谢谢你的解答

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 11:27