楼主: sxnccq
3785 5

[问答] SAS要做permutation test,第一步如何随机排列数字 [推广有奖]

  • 0关注
  • 0粉丝

小学生

42%

还不是VIP/贵宾

-

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

楼主
sxnccq 发表于 2014-10-31 12:45:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想做permutation test,但是先要随机排列三列数字,我想请问这个如何用SAS实现啊?大概就是类似下边的数据,第一列不动,将后边的三列在各自的列中同时随机排列。
编号年龄工作年限抑郁得分
100101261016
100102291223
100103352625
100104481610
100105321218
100106442532


二维码

扫码加我 拉你入群

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

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

关键词:Permutation Mutation ATION test TIO 如何

沙发
michaelxiagang 发表于 2014-10-31 13:47:39
不懂帮顶

藤椅
李会超 发表于 2014-10-31 13:56:09
这个时候为什么就感觉r软件好方便了……

板凳
李会超 发表于 2014-10-31 13:58:14
把数据集的每一列通过keep函数保存为四个数据集,然后对后三个数据集通过产生随机数随机排列,然后将四个数据集通过set a;set b;set c;set d;并排到一起

报纸
sxnccq 发表于 2014-11-3 10:07:39
李会超 发表于 2014-10-31 13:58
把数据集的每一列通过keep函数保存为四个数据集,然后对后三个数据集通过产生随机数随机排列,然后将四个数 ...
刚开始用SAS。。非常白痴 我想问能不能直接在一个数据集里边随机排列这三列数据啊?主要是我要排列产生10000个随机排列的这三列数字 如果每次都随机排列合并的话 有点麻烦

地板
mingfeng07 学生认证  发表于 2014-11-3 19:57:47
  1. data test;
  2. input id age year grades;
  3. cards;
  4. 100101        26        10        16
  5. 100102        29        12        23
  6. 100103        35        26        25
  7. 100104        48        16        10
  8. 100105        32        12        18
  9. 100106        44        25        32
  10. ;
  11. run;
  12. proc sql;
  13. select age,year,grades into:new_age separated by ' ',:new_year separated by ' ',:new_grades separated by ' ' from test;
  14. quit;
  15. data test1;
  16. set test;
  17. retain t1 t2 t3;
  18. if _n_=1 then do;t1="&new_age";t2="&new_year";t3="&new_grades";end;
  19. a0=compress(t1);
  20. a1=length(a0)/2;
  21. a2=int(1+a1*ranuni(0))*2-1;
  22. age_new=substr(a0,a2,2);
  23. substr(t1,find(t1,compress(age_new),' '),2)=' ';

  24. b0=compress(t2);
  25. b1=length(b0)/2;
  26. b2=int(1+b1*ranuni(0))*2-1;
  27. year_new=substr(b0,b2,2);
  28. substr(t2,find(t2,compress(year_new),' '),2)=' ';

  29. c0=compress(t3);
  30. c1=length(c0)/2;
  31. c2=int(1+c1*ranuni(0))*2-1;
  32. grades_new=substr(c0,c2,2);
  33. substr(t3,find(t3,compress(grades_new),' '),2)=' ';

  34. age=input(age_new,8.);
  35. year=input(year_new,8.);
  36. grades=input(grades_new,8.);
  37. keep id age year grades;
  38. run;
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 21:38