全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1280 4
2016-09-19
请教大牛,如何利用宏,简化下面这段代码?

目的:计算每个人经历过多少个职位

原始数据:
姓名Position1Position2Position3Position4Position5期望的统计结果
张三副主任科员主任科员副处长  3
李四副司长司长2
王五财务部副总经理总经理董事长助理董事长常务董事5
赵六副总经理总经理3
马七业务经理1
赵二副总经理总经理   2


我的代码:
data tmp2;
set   tmp1;
if position1~="" and position2="" then count=1;
else if position2~="" and position3="" then count=2;
else if position3~="" and position4="" then count=3;
else if position4~="" and position5="" then count=4;
else if position5~="" then count=5;
run;



主要的疑问:
使用Macro test;% do i=1 %to 5;
只能表示&i.的概念,难以表示&i.+1的概念

二维码

扫码加我 拉你入群

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

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

全部回复
2016-9-19 09:22:48
count=5-cmiss(of position1-position5);
二维码

扫码加我 拉你入群

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

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

2016-9-19 09:29:14
孤单的我们 发表于 2016-9-19 09:22
count=5-cmiss(of position1-position5);
非常棒,可以解决这个问题。
如果使用宏该怎么做呢?

比如:if position&i.~="" and position&i.+1="" then count=&i.;
二维码

扫码加我 拉你入群

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

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

2016-9-19 10:03:30
复制代码
二维码

扫码加我 拉你入群

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

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

2016-9-19 10:37:46
孤单的我们 发表于 2016-9-19 10:03
太牛了
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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