全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1740 3
2012-05-16
The SAS data sets Work.Employee and Work.Salary are shown below;


Work.Employee                                fname ageBruce 30Dan 40
Work.Salaryfname salaryBruce 25000Bruce 35000Dan 25000

The following merged SAS data set is generated:Work.Empdatafname age totsalBruce 30 60000Dan 40 25000
Which one of the following SAS programs created the merged data set?正解:data work.empdata(drop=salary);merge work.employeework.salary;by fname;if first.fname then totsal=0;totsal+salary;if last.fname then output;run;
不明白这个程序在计算机中是怎么运行出来的,是先把emplyee和salary合并么?然后再从第一条观测开始判断是first还是last?最后把salary删除了?

二维码

扫码加我 拉你入群

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

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

全部回复
2012-5-17 08:18:28

这个程序是这个意思
首先合并两个data set (fname是按照从小到大的顺序排列好了,并且,在最后的结果的rop salary)
By语言,是引出已经排序好的变量,
First 和last是判断是否是变量的第一个(最后一个)观测值
如果,是第一个obs,产生一个新变量totsal 初始值为0,
totsal+salary是求和
last是到fname的最后一个obs,就输出

明白了吗
二维码

扫码加我 拉你入群

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

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

2012-5-17 15:41:02
drop salary是在最后删除的么?所以中间可以继续用这个变量?谢谢啦
二维码

扫码加我 拉你入群

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

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

2012-5-18 04:54:23
对,drop发生在output
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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