楼主: 金融考研
1490 4

如何将基金经理调整数据分期基金不同阶段经理任职情况 [推广有奖]

  • 7关注
  • 2粉丝

博士生

31%

还不是VIP/贵宾

-

威望
0
论坛币
170 个
通用积分
0.3000
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
4602 点
帖子
280
精华
0
在线时间
227 小时
注册时间
2008-8-18
最后登录
2016-4-16

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

Fdcd

Funmager

Curryn

Stamager

Clsmager

000001

王亚伟

2

2001-11-21

2005-04-12

000001

田擎

2

2004-02-27

2005-10-29

000001

巩怀志

2

2005-10-29

2010-01-16

000001

童汀

1

2010-01-16

2012/4/1

000011

蒋征

2

2004-06-30

2006-05-24

000011

王亚伟

1

2005-12-31

2012/4/1

000021

张益驰

2

2006-11-15

2009-07-21

大家请看以上数据,数据格式为每个基金经理在每只基金的任职起始时间,现在我希望能够编一个程序,将数据调整为每个不同阶段任职的基金经理。例如:
Fdcd        Funmager            Curryn            Stamager      Clsmager
000001    王亚伟                 2                     2001-11-21   2004-02-27
000001    王亚伟,田擎      2                     2004-02-27    2005-10-29
000001  孔怀志                   2                     2005-10-29    2010-01-16
000001   童汀                       2                  2010--01-16    2012-04-01
二维码

扫码加我 拉你入群

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

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

关键词:基金经理 不同阶 curr 数据调整 数据格式 000021 000011 基金 王亚伟 经理

沙发
liujianfang 发表于 2012-4-25 13:14:50 |只看作者 |坛友微信交流群
看看
欢迎广大经济管理类同仁加为好友

使用道具

藤椅
andru 发表于 2012-4-25 13:21:25 |只看作者 |坛友微信交流群
这个汇总出来做什么呢??

使用道具

板凳
mymine 发表于 2012-4-25 15:30:33 |只看作者 |坛友微信交流群
用附件中的数据计算的,自己试验正确

proc sql;
create table temp1 as
select Stamager as time,'min' as code
from temp
union
select Clsmager as time,'max' as code
from temp;
quit;
proc sql;
create table temp2 as
select distinct *
from temp1;
quit;
proc sort data=temp2;
by time descending code;
run;
data temp2;
set temp2;
time1=lag(time);
code1=lag(code);
if code1='min' and code='min' then do;t1=time1;t2=time-1;end;
if code1='min' and code='max' then do;t1=time1;t2=time;end;
if code1='max' and code='min' then do;t1=time1+1;t2=time-1;end;
if code1='max' and code='max' then do;t1=time1+1;t2=time;end;
keep t1 t2;
if t1^=.;
run;
proc sql;
create table temp3 as
select distinct temp2.*,Fdcd,Funmager
from temp2 left join temp
on Stamager<=t1 and clsmager>=t2;
quit;
proc sort data=Temp3 out=temp3;
   by T1 T2 FDCD Funmager;
run;
proc transpose data=temp3 out=temp4 PREFIX=COL NAME=_SOURCE_;
   by T1 T2 FDCD;
   var FUNMAGER;
run;
data temp4;
set temp4;
Funmager=compress(col1||','||col2);  
run;
proc sort data=temp4;
by FDCD Funmager t1 t2;
run;
data temp4;
set temp4;
cls=t1-lag(t2);
run;
data temp4;
set temp4;
by FDCD Funmager;
if _n_=1 then flag=1;
else if first.FDCD or first.Funmager or cls^=1 then flag+1;
run;
proc sql;
create table temp5 as
select distinct FDCD,FUNMAGER,min(t1) as tmin,max(t2) as tmax
from temp4 group by flag;
quit;
data temp5;
set temp5;
format tmin yymmdd10. tmax yymmdd10.;
run;
proc sort data=temp5;
by fdcd tmin;
run;

temp.rar

847 Bytes

本附件包括:

  • temp.sas7bdat

使用道具

报纸
金融考研 在职认证  发表于 2012-4-25 18:40:44 |只看作者 |坛友微信交流群
哇,牛人,谢谢,太感谢了

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-10-5 20:49