全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5359 3
2014-06-05
如题,正在用SAS做一个股票投资策略,涉及到根据市盈率筛选出前40%的股票,请问如何用语句实现?希望各位牛人回答,谢谢啦
二维码

扫码加我 拉你入群

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

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

全部回复
2014-6-5 12:45:39
用proc rank过程可以实现百分位排序。然后利用这个过程可以筛选
二维码

扫码加我 拉你入群

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

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

2014-6-6 10:41:09
来个笨方法,保证实用:
/*先把data set排序*/
Proc sort data =table1 ;
By descending 市盈率;
Run;
/*前40%的记录个数*/
proc sql outobs=1 number ;
select count(*)*0.4 into :num from table1 ;
quit;
%put &num.;
/*打印*/
proc sql inobs=#
select * from table1;
quit;
二维码

扫码加我 拉你入群

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

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

2014-6-8 19:50:46
zorro999 发表于 2014-6-6 10:41
来个笨方法,保证实用:
/*先把data set排序*/
Proc sort data =table1 ;
可以更简单点:

proc sort data=table1;
        By descending 市盈率;
Run;
data table1;
        set table1 nobs=tot;
        if _N_ <= 0.4 * tot;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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