请教大神们一个问题,是关于出现在“SAS Certification PrepGuide-Base Programming for SAS9”这本书第296页的这一段代码
“proc sort data=company.usaout=work.temp;
bydept;
run;
data company.budget(keep=dept payroll);
set work.temp;
bydept;
ifwagecat='S' then Yearly=wagerate*12;
else if wagecat='H' then Yearly=wagerate*2000;
iffirst.dept then Payroll=0;
payroll+yearly;
iflast.dept;
run; “
我的程度太浅了,所以问题比较多,如果你有任何想回答或评论的,无论长短,都请告诉我,谢谢~
1. 最开始的6行,引用了旧数据集company.budget,并创建了新数据集company.budget
“proc sort data=company.usaout=work.temp;
by dept;
run;
data company.budget(keep=dept payroll);
set work.temp;
by dept;“
为什么不像下面4行这样,而要引入“work.temp”作为过渡呢?
Data company.budget(keep=dept payroll);
set company.usa;
by dept;
run;
2. Yearly是新加入的变量吗?
3. payroll+yearly的值体现在哪里呢? 是指这两者的和作为一个新变量出现在表格中吗?
4.最后三行“if first.dept then Payroll=0; payroll+yearly; iflast.dept; “放在一起,起了怎样的作用,希望能帮我理解一下。
5.最后还有一个问题是关于后文提到的programdata vector (PDV), 原文如下“If you could look behind thescenes at the program data vector (PDV) as the Company.Budget data set is beingcreated, you would see the following. Notice the values for FIRST.Dept andLAST.Dept.”,我想问这里提到的program data vector (PDV)有什么意义,怎样调出这个界面呢?
我的程度太浅了,所以问题比较多,如果你有任何想回答或评论的,无论长短,都请告诉我,谢谢~