全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5425 2
2014-10-18
楼主最近开始自学SAS,发现BY语句的语法很多,其中见过两个程序如下:(数据集XYT.balance 中有很多的上市公司2001年-2011年财务报表的变量,其中CODE是公司代码,date是会计期间。所以数据表中code和date中都有很多重复的值。)


程序 一:
proc sort data=xyt.balance out=tmp2;
        by code date;
run;


程序二:
data tmp3;
        retain i;
        set tmp2;
        by code date;
        if first.code then do;
                i=0;
        end;
        if first.DATE then do;
                if DATE in('31dec2001'd,'31dec2002'd,'31dec2003'd,'31dec2004'd,'31dec2005'd,'31dec2006'd,'31dec2007'd,'31dec2008'd,'31dec2009'd,'31dec2010'd,'31dec2011'd) then i=i+1;
                else i=i;
        end;
run;



我的问题就是程序一和程序二的BY语句有什么不同呢?最好解读一下第二个程序,thx~!
二维码

扫码加我 拉你入群

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

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

全部回复
2014-10-18 22:55:07
个人感觉,BY的意义是相同的,只是看他放在哪个步里;其实作用都是相同的,只是需要处理的结果步产生的结果不同。
第二个程序里的BY也是指定两个变量,作为后面要用的到FIRST所指定的变量,如果不需要用的FIRST或者LAST什么的,也没必要用BY。

瞎说的
二维码

扫码加我 拉你入群

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

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

2014-10-20 04:58:50
Any SAS book has very detailed explanations.
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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