全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2482 6
2018-09-03
字段:age

原本的代码就是:

if age=0 or age=.  then age_range='异常';
else if age<=23 then age_range='23岁以下';
else if age<=30 then age_range='24-30';
else if age<=40 then age_range='31-40';
else if age<=50 then age_range='41-50';
else age_range='51岁以上';

现在需要的分组是:

23岁以下、20岁-23岁(新增这个分组)、24岁-30岁、31岁-40岁、41岁-50岁、50岁以上;

新手不知道要怎么做。。求教~~

二维码

扫码加我 拉你入群

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

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

全部回复
2018-9-4 08:36:10
不合逻辑,比如22岁到底分到哪组?
二维码

扫码加我 拉你入群

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

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

2018-9-4 12:50:29
这个变量不可以和当下的这个变量合并,因为逻辑是混乱的,集合有重叠。你需要做的是,再生成一个变量。或者直接用if age>=20 and age<=23 then output 来单独调用这组数据。
二维码

扫码加我 拉你入群

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

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

2018-9-4 15:38:50
l1i2n3i4n5g 发表于 2018-9-4 08:36
不合逻辑,比如22岁到底分到哪组?
就是会有重合的情况,22岁即在23岁以下的分组,也在20-23岁的分组
二维码

扫码加我 拉你入群

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

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

2018-9-4 15:39:43
cxy199088 发表于 2018-9-4 12:50
这个变量不可以和当下的这个变量合并,因为逻辑是混乱的,集合有重叠。你需要做的是,再生成一个变量。或者 ...
因为后续还有很长的报表计算,都依托于‘age_range’这个字段。。不知道有没有其他的办法,或者不用if进行分组。。
二维码

扫码加我 拉你入群

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

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

2018-9-4 18:32:55
sugar糖糖 发表于 2018-9-4 15:39
因为后续还有很长的报表计算,都依托于‘age_range’这个字段。。不知道有没有其他的办法,或者不用if进行 ...
OK,那我明白了。你直接把<=19 作为一组,然后<=23作为一组。然后你调取数据时,如果想看23以下的,就把两组都并列选走,如果是20-23的,就选一组。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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