全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3113 6
2014-01-21
编写一个宏函数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大神能帮帮忙实现这个函数?

二维码

扫码加我 拉你入群

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

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

全部回复
2014-1-22 10:12:19
自顶一下~求大神出现啊~
二维码

扫码加我 拉你入群

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

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

2014-1-22 10:43:13
try this
复制代码
二维码

扫码加我 拉你入群

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

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

2014-1-22 20:41:28
复制代码
二维码

扫码加我 拉你入群

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

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

2014-1-22 21:34:16
yongyitian 发表于 2014-1-22 10:43
try this
看懂了!啊果然简洁易懂,我还想着如何在data步里引用宏而不出错呢~膜拜!
二维码

扫码加我 拉你入群

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

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

2014-1-22 21:36:04
Jessup007 发表于 2014-1-22 20:41
感谢!你的这个同样也实现了!等我慢慢学习一下~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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