全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
10264 3
2012-04-09
proc sort data=company.usa out=work.temp2;   
    by manager jobtype;  
   data company.budget2(keep=manager jobtype payroll);  
      set work.temp2;        by manager jobtype;     
   if wagecat='S' then Yearly=wagerate*12;     
   else if wagecat='H' then Yearly=wagerate*2000;     
   if first.jobtype then Payroll=0;     
   payroll+yearly;   
    if last.jobtype;     run;
关于这段代码,我想请教大家,最后一个if语句,当last.jobtype为真时,程序是执行run之后回到data步开始的地方吗?当它为假时程序去何处运行下一步?谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-4-9 21:23:01
if last.jobtype then output的缩写,这和运行下一步有啥联系。。。。
执行run后都回到data步开始的地方吧
二维码

扫码加我 拉你入群

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

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

2012-4-9 21:37:20
if last.jobtype then out;
表示累加后把最后一条观测输出(输出的数据集没有重复的jobtype);
若某个jobtype的取值没有重复的,
那first.=last.,
还是只输出该条观测.

二维码

扫码加我 拉你入群

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

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

2012-4-9 21:50:46
果然是省略了OUT。最后只是输出了last.jobtype为1的几条观测。谢谢各位了啊!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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