SAS中文论坛
标题:
如何随机变换顺序
[打印本页]
作者:
gogotiger
时间:
2014-5-29 20:48
标题:
如何随机变换顺序
有个数据a, unid和mbr_id一一对应,大概有50,000个这样的obs:
data a;
input unid $ mbr_id $;
cards;
001 1001
002 1002
003 1003
004 1004
005 1005
006 1006
007 1007
008 1008
...
;
run;
现在想把unid和mbr_id顺序随机打乱,但mbr_id不能重复/减少,比如:
001 1005
002 1007
003 1002
004 1004
005 1008
006 1001
007 1003
008 1006
。。。
谢谢!
作者:
mingfeng07
时间:
2014-5-29 23:28
如果要求不是特别严格的话,办法应该很多,比方说通过建立一个随机的数字集来打乱顺序,举个例子:
data a;
input unid $ mbr_id $;
cards;
001 1001
002 1002
003 1003
004 1004
005 1005
006 1006
007 1007
008 1008
;
run;
data RV(keep=x1);
retain seed1 161321804;
do I=1 to 8;
x1= int(1+7*ranuni(seed1));
output;
end;
run;
data a;
set a;
set rv;
run;
proc sort data=a(drop=unid) out=b;by x1;run;
data a;
set a(keep=unid);
set b(keep=mbr_id);
run;
复制代码
作者:
gogotiger
时间:
2014-5-30 01:49
thank you mingfeng07!
作者:
mingfeng07
时间:
2014-5-30 23:15
gogotiger 发表于 2014-5-30 01:49
thank you mingfeng07!
不客气哈
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2