全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
8833 14
2013-02-07
我有一组贷款的数据,有贷款编号(id)、贷款时间(date)、贷款利率(interest)等变量。对每一笔贷款,我要算这个贷款以前六个月所有贷款的平均利率,请问可以用proc means直接算么?想了半天没想出来。求大牛解惑,多谢多谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-2-7 13:33:25
用proc means里面的by或者class
二维码

扫码加我 拉你入群

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

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

2013-2-7 14:41:06
在proc means里data=xx(where=(****))里面设置
二维码

扫码加我 拉你入群

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

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

2013-2-7 15:13:17
chenys625 发表于 2013-2-7 13:33
用proc means里面的by或者class
没有可以by的变量啊。比方说我有一个贷款是2013年1月20日的,我要算这个日子之前六个月内所有的贷款的平均利率,就是从2012年7月20号到2013年1月20日之间在我的数据里的所有贷款的平均利率;另外一个贷款是2012年12月30日的,对于这个贷款要算2012年6月30日到12月30日的所有贷款的平均利率。这个用by好像不行吧?对于一个贷款可以,但是我的数据里有几万条贷款,不知道怎么做出来这个by的变量
二维码

扫码加我 拉你入群

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

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

2013-2-7 15:15:33
hamsik11 发表于 2013-2-7 14:41
在proc means里data=xx(where=(****))里面设置
我能想出来少量的贷款用这个可以。如果有几万条贷款,每一个贷款都要算出来对应的前六个月的平均利率要怎么算呢?多谢
二维码

扫码加我 拉你入群

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

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

2013-2-7 16:48:00
superyxo 发表于 2013-2-7 15:15
我能想出来少量的贷款用这个可以。如果有几万条贷款,每一个贷款都要算出来对应的前六个月的平均利率要怎 ...
你的要求类似于求股票价格的移动平均值
那里需要控制固定的步长,即lag,如前15个交易日
可以用SAS的临时数组来做,这样的宏在论坛里也可以搜到

但你这里是要求前六个月的平均值,即步长是不定的
所以不能用前面提到的临时数组的办法

我能想到的是用%do循环来做
%let BegT='1JAN2010'd;
%let EndT='31DEC2012'd;
%do i=&BegT %to &EndT;
    proc means data=have(where=(date>=&i and date<intnx('month',&i,6,sameday))) out=want_&i;
       xxx
    run;
%end;

然后把所有的want_&i表格连起来就好了
%end;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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