编写一个宏函数mseparate(test,d1 d2 d3...dn):给定一个数据集test,输入数据分层的界限值d1,d2,d3...dn(假设界限值顺序都是d1<d2<d3...dn),自动按照界限值在原数据集生成数据分层标签flag。
例如:
有一个原始数据集test,只有一个字段num:
num
1
330
50
180
1500
1、如果按0,100两个界限值给数据分层,引用函数mseparate(test,0 100),得到新数据集:
num flag
1 【0,100)
330 【100,+)
50 【0,100)
180 【100,+)
1500【100,+)
2、如果增加一个界限值500,则引用函数mseparate(test,0 100 500),得到新数据集:
num flag
1 【0,100)
330 【100,500)
50 【0,100)
180 【100,500)
1500【500,+)
小弟刚接触SAS宏,对宏还不是很熟悉,工作中有大量的数据分层工作,所以想写个宏来实现自动分层的功能,我的思路是先计算界限值的个数n,并且保存在x1,x2,x3..xn中,但是接下来对数据集的处理就各种出错了,弄了很久都没有结果,不知道有哪位SAS大神能帮帮忙实现这个函数?