全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1420 3
2013-08-11
在SAS编程中遇到下述的一个情况不知道如何处理,在这里向大家请教,谢谢。数据结构如下:

ID   A  B  C  D  Loc  Rat
0b1  1  0  1  0  SE    2
0b2  1  3  4  6  SE    3
0b3  3  5  6  7  DL    2
......
0bn  5  6  7  8  NP    1

对每一个观测,需要在数据集内具有相同的Loc和Rat值的观测中随机选出新的一个观测,将这这个观测到变量C和D的值作为原来观测新变量E和F的值,从而形成新的数据结构:

ID   A  B  C  D   E   F   Loc  Rat
0b1  1  0  1  0  4   6   SE    2
0b2  1  3  4  6  1   0   SE    2
0b3  3  5  6  7  5   9   DL    3
......
0bn  5  6  7  8  8   2   NP    1


本人SAS的功底比较浅,想了很久都没有想到合适的方法,向大家讨教,先谢谢了。
二维码

扫码加我 拉你入群

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

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

全部回复
2013-8-12 20:58:45
不知道“具有相同的Loc和Rat值的观测”是否允许包括自己本身这条。如果不包括的话,我想可以先找出所有可能的combination
proc sql;
        create table allcombine as
        select a.*, b.c as e, b.d as f
        from yourdata a join yourdata b
        on a.loc = b.loc and a.rat = b.rat and a.id ne b.id
        order by id;
quit;
然后用用surveyselect的random select来选,在用surveyselect之前先创建一个数据集来指明每个stratum下面要选多少个观测值。
proc sql;
        create table samplesize as
        select distinct id, 1 as _NSIZE_
        from allcombine
        order by id;
quit;
然后
proc surveyselect data = allcombine seed = 1234 out = result method = srs sampsize = samplesize;
        strata id;
run;
这个方法就是效率低了一点
二维码

扫码加我 拉你入群

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

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

2013-8-12 22:13:22
yuerqieqie 发表于 2013-8-12 20:58
不知道“具有相同的Loc和Rat值的观测”是否允许包括自己本身这条。如果不包括的话,我想可以先找出所有可能 ...
很有启发,谢谢!
二维码

扫码加我 拉你入群

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

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

2013-8-12 23:22:24
很有启发,too. 谢谢!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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