楼主: 锦sè♀
5239 2

[问答] SAS中 data步中的by语句和PROC中的by语句的作用区别是什么? [推广有奖]

  • 2关注
  • 0粉丝

本科生

59%

还不是VIP/贵宾

-

威望
0
论坛币
1292 个
通用积分
0.6607
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
2767 点
帖子
73
精华
0
在线时间
71 小时
注册时间
2013-6-2
最后登录
2022-5-17

楼主
锦sè♀ 在职认证  学生认证  发表于 2014-10-18 16:51:44 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
楼主最近开始自学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~!
二维码

扫码加我 拉你入群

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

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

关键词:data步 Data ROC balance RETAIN 上市公司 数据表

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

瞎说的

使用道具

藤椅
bobguy 发表于 2014-10-20 04:58:50 |只看作者 |坛友微信交流群
Any SAS book has very detailed explanations.

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 19:40