楼主: 龙潭丰乐
2864 5

[学习分享] sas查找对应的准备金率 [推广有奖]

  • 14关注
  • 4粉丝

已卖:115份资源

讲师

50%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0.0600
学术水平
25 点
热心指数
29 点
信用等级
14 点
经验
8649 点
帖子
457
精华
0
在线时间
466 小时
注册时间
2011-11-20
最后登录
2022-1-6

楼主
龙潭丰乐 学生认证  发表于 2013-1-21 21:28:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我这里有从2002年-2012年每季度的GDP、M1 、M0、 M2等数据,这些数据在一个excel里面。有另外一个excel保存着从2002年-2012年间调整时间点的法定准备金率,怎么利用第二个数据集查找2002-2012年季度对应的法定准备金率。第一个数据集部分数据

datem0m1m2CPIdebittotalgdp

2002/3/1

15544.63

59474.83

164064.6

-0.008

147209.9

25375.68

2002/6/1

15097.35

63144

169601.2

-0.008

157645.1

27965.31

2002/9/1

16233.58

66799.76

176985.2

-0.007

165674.9

29715.69

2002/12/1

17278.03

70881.79

185007

-0.004

170917.4

37275.99

2003/3/1

17106.5

71438.82

194487.3

0.009

182295.3

28861.8

2003/6/1

16956.89

75923.23

204907.4

0.003

194306.5

31007.1

2003/9/1

18306.36

79163.88

213567.1

0.011

202869.3

33460.41

2003/12/1

19745.99

84118.57

221222.8

0.032

208055.6

42493.5

2004/3/1

19297.43

85815.57

231654.6

0.03

220563.3

33420.6

2004/6/1

19017.58

88627.14

238427.5

0.05

229670.8

36985.29

2004/9/1

20524.17

90439.05

243756.9

0.052

235029.7

39561.69

2004/12/1

21468.3

95970.82

253207.7

0.024

240525.1

49910.7

第二个数据集部分数据为:

daterate

2003/9/21

0.07

2004/4/25

0.075

2006/7/5

0.08

2006/8/15

0.085

2006/11/15

0.09

2007/1/15

0.095

2007/2/25

0.1

2007/4/16

0.105

最后想要的数据集部分为:

2002/3/1

15544.63

59474.83

164064.57

147209.94

25375.68

0.07

2002/6/1

15097.35

63144

169601.24

157645.11

27965.31

0.07

2002/9/1

16233.58

66799.76

176985.21

165674.85

29715.69

0.07

2002/12/1

17278.03

70881.79

185006.97

170917.4

37275.99

0.07

2003/3/1

17106.5

71438.82

194487.3

182295.33

28861.8

0.07

2003/6/1

16956.89

75923.23

204907.42

194306.47

31007.1

0.07

2003/9/1

18306.36

79163.88

213567.13

202869.26

33460.41

0.07

2003/12/1

19745.99

84118.57

221222.82

208055.59

42493.5

0.07

2004/3/1

19297.43

85815.57

231654.6

220563.25

33420.6

0.07

2004/6/1

19017.58

88627.14

238427.49

229670.82

36985.29

0.075

2004/9/1

20524.17

90439.05

243756.88

235029.68

39561.69

0.075

2004/12/1

21468.3

95970.82

253207.7

240525.07

49910.7

0.075

2005/3/1

21238.95

94743.19

264588.94

255573.32

39117.39

0.075

全部数据见附件:
在此感谢群里的大牛们!
二维码

扫码加我 拉你入群

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

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

关键词:准备金率 准备金 法定准备金率 EXCEL debit 准备金率

2.xls
下载链接: https://bbs.pinggu.org/a-1256136.html

17 KB

法定准备金率的调整时间点以及法定准备金率

1.xls

19.5 KB

2002-2012年的货币政策以及经济方面的数据

沙发
zhengbo8 发表于 2013-1-22 03:12:20
半夜睡不着,想到个简单的方法。

  1. PROC IMPORT OUT= a
  2.                 DATAFILE= "D:\1.xls "
  3.                 DBMS=EXCEL REPLACE;
  4.                 SHEET="Sheet$";;
  5.                 GETNAMES=YES;
  6.                 MIXED=NO;
  7.                 SCANTEXT=YES;
  8.                 USEDATE=YES;
  9.                 SCANTIME=YES;

  10. RUN;

  11. PROC IMPORT OUT= b
  12.                 DATAFILE= "D:\2.xls "
  13.                 DBMS=EXCEL REPLACE;
  14.                 SHEET="Sheet$";
  15.                 GETNAMES=YES;
  16.                 MIXED=NO;
  17.                 SCANTEXT=YES;
  18.                 USEDATE=YES;
  19.                 SCANTIME=YES;

  20. RUN;

  21. /* 按变量date的顺序合并数据集 */
  22. PROC SORT data=a;
  23.     BY date;
  24. RUN;

  25. PROC SORT data=b;
  26.     BY date;
  27. RUN;

  28. DATA c;
  29.     SET a b;
  30.     BY date;
  31. RUN;

  32. DATA d(drop=date_tmp rate_tmp);

  33.     SET c;

  34.     /* 获取准备金率初始值 */
  35.     IF _N_=1 THEN n=1;
  36.     SET b(rename=(date=date_tmp rate=rate_tmp)) point=n;

  37.     /* 判断时间范围 */
  38.     IF rate=. THEN rate=rate_tmp;
  39.     ELSE IF date > date_tmp THEN n=sum(n,1);
  40.    
  41.     /* 删除来自b的数据 */
  42.     IF m0=. THEN DELETE;
  43. RUN;
复制代码

运行结果
楼主大人,是不是应该补偿我论坛币,下载你的文件我还花了两个论坛币~


已有 2 人评分学术水平 热心指数 信用等级 收起 理由
龙潭丰乐 + 1 + 1 + 1 不错的方法
zhukovasky + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

藤椅
zhukovasky 发表于 2013-1-22 12:50:42
zhengbo8 发表于 2013-1-22 03:12
半夜睡不着,想到个简单的方法。
我没想出来,就睡了
za rujina!

板凳
龙潭丰乐 学生认证  发表于 2013-1-22 13:55:37
zhengbo8 发表于 2013-1-22 03:12
半夜睡不着,想到个简单的方法。
首先谢谢你哈 ,真心感谢。其次我没设置要论坛币啊?怪异

报纸
佛印 发表于 2013-1-25 09:49:38

给你个简单算法,不客气
DATA d(drop=rate_tmp);
SET c;
RETAIN rate_tmp 0.07;/*RETAIN语句的用法*/
if rate=. then rate=rate_tmp;
else rate_tmp=rate;
if m0=. then delete;
RUN;

地板
playmore 发表于 2013-1-25 11:14:53
可以修改第二张表,从而便于表一和表二的连接,我想到两种方法:

第一,鉴于你的第二张表数据量小,可以用Proc Timeseries补全时间序列,然后再用表一和得到的表二做左连接就好了

第二,就是根据第二张表的date变量,生成一个新的变量date_lead1,即下一个观测的date值,然后表一和表二连接的时候,on子句就写b.date<=a.date<b.date_lead1就行了
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

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

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