楼主: travelerlzx
1230 3

请教大家如何从随机观测中复制数据值 [推广有奖]

  • 0关注
  • 0粉丝

初中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
9 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
52 点
帖子
6
精华
0
在线时间
22 小时
注册时间
2013-4-12
最后登录
2014-1-10

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在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的功底比较浅,想了很久都没有想到合适的方法,向大家讨教,先谢谢了。
二维码

扫码加我 拉你入群

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

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

关键词:SAS编程 数据结构 sas的 数据集 新变量 如何

沙发
yuerqieqie 发表于 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;
这个方法就是效率低了一点

使用道具

藤椅
travelerlzx 发表于 2013-8-12 22:13:22 |只看作者 |坛友微信交流群
yuerqieqie 发表于 2013-8-12 20:58
不知道“具有相同的Loc和Rat值的观测”是否允许包括自己本身这条。如果不包括的话,我想可以先找出所有可能 ...
很有启发,谢谢!

使用道具

板凳
fossilweng 发表于 2013-8-12 23:22:24 |只看作者 |坛友微信交流群
很有启发,too. 谢谢!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 02:14