全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学
1478 6
2010-02-22
现在有一个data a ,里面已经进行了proc sort data=a; by year ret; run; 的命令
现在需要把每年收益率最低的5个股票选出来。

我以为用proc print data=a (obs=5); by year; run; 可以得到。但是这样只能得到一年的数据,因为obs 设置的5 。

请问这种情况,怎么写才能一次性把很多年的,每年的前5的股票提取出来啊?谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-2-22 11:10:22
复制代码
二维码

扫码加我 拉你入群

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

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

2010-2-22 11:24:29
运行了一下,好像还是不对

只显示了最前面一年的两个obs
#    if  first.year   then    n=0;
#      else n+1;
#      if n<=5;
#      drop n;

是什么意思啊?才开始学sas, 还看不懂。 谢谢了!
二维码

扫码加我 拉你入群

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

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

2010-2-22 11:26:18
data a;
input year x;
datalines;
2001 1
2001 3
2001 2
2002 3
2002 2
2002 1
;
run;

proc rank data=a out=b;
        var x;
        ranks x_rank;
        by year;
        run;

proc sql;
        select * from b
                where x_rank lt 3
        order by year,x;
        quit;
二维码

扫码加我 拉你入群

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

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

2010-2-22 12:22:57
谢谢楼上的!!!!

太感谢了!
终于不用手敲n 次了!!!
二维码

扫码加我 拉你入群

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

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

2010-2-22 12:39:26
select var1,var2,var3 from b.....

多看看SAS HELP是个不错的习惯。

朱老师的《SAS编程技术教程》也不错。
附件列表
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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