楼主: rockfido
5122 28

[程序分享] HOW TO DEAL WITH THIS ONE (SURVEYSELECT) [推广有奖]

  • 0关注
  • 0粉丝

已卖:1754份资源

博士生

32%

还不是VIP/贵宾

-

威望
0
论坛币
2715 个
通用积分
0.0341
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
4441 点
帖子
201
精华
0
在线时间
202 小时
注册时间
2008-8-29
最后登录
2024-11-1

楼主
rockfido 在职认证  发表于 2010-3-2 00:14:36 |AI写论文
20论坛币
I HAVE AN ORIGINAL DATA SET AS:
ID
1_A
1_B
1_C
1_D
2_A
2_B
2_C
2_D
.....
.....
100_A
100_B
100_C
100_D

BUT I NEED ONLY HALF OF THE DATA SET (RANDOMLY SELECTED), BUT THE PROBLEM IS THAT, ONCE 1_A WAS SELECTED, ALL 1_A, 1_B, 1_C AND 1_D SHOULD ALSO BE SELECTED.

HOW CAN I DEAL WITH THIS KIND OF PROBLEM?

THANKS A LOT!!

最佳答案

bobguy 查看完整内容

The problem is equivalent to, select numbers from [1,2,3,...,100] randomly. Once you have the numbers, you use them to subset your original data. HTH
关键词:surveyselect Surveys Select Survey Elect How With Deal This surveyselect

沙发
bobguy 发表于 2010-3-2 00:14:37
rockfido 发表于 2010-3-2 00:14
I HAVE AN ORIGINAL DATA SET AS:
ID
1_A
1_B
1_C
1_D
2_A
2_B
2_C
2_D
.....
.....
100_A
100_B
100_C
100_D

BUT I NEED ONLY HALF OF THE DATA SET (RANDOMLY SELECTED), BUT THE PROBLEM IS THAT, ONCE 1_A WAS SELECTED, ALL 1_A, 1_B, 1_C AND 1_D SHOULD ALSO BE SELECTED.

HOW CAN I DEAL WITH THIS KIND OF PROBLEM?

THANKS A LOT!!
The problem is equivalent to,

select numbers from [1,2,3,...,100] randomly. Once you have the numbers, you use them to subset your original data.

HTH

藤椅
frackdeng 发表于 2010-3-2 08:58:36
问2个问题:
1.你打算运行随机选择几次?是100次还是400次?
2.1_A,1_B,1_C,1_D是不是作为一个整体,要么都在要么都不在?

板凳
soporaeternus 发表于 2010-3-2 10:17:45
bobguy 发表于 2010-3-2 08:01
rockfido 发表于 2010-3-2 00:14
I HAVE AN ORIGINAL DATA SET AS:
ID
1_A
1_B
1_C
1_D
2_A
2_B
2_C
2_D
.....
.....
100_A
100_B
100_C
100_D

BUT I NEED ONLY HALF OF THE DATA SET (RANDOMLY SELECTED), BUT THE PROBLEM IS THAT, ONCE 1_A WAS SELECTED, ALL 1_A, 1_B, 1_C AND 1_D SHOULD ALSO BE SELECTED.

HOW CAN I DEAL WITH THIS KIND OF PROBLEM?

THANKS A LOT!!
The problem is equivalent to,

select numbers from [1,2,3,...,100] randomly. Once you have the numbers, you use them to subset your original data.

HTH
正解......
把scan(id,1,"_")相同的视为一个变量(组)
Let them be hard, but never unjust

报纸
醉_清风 发表于 2010-3-2 10:31:55
不错 学习了 楼上都是高人
从来不需要想起 永远也不会忘记

地板
rockfido 在职认证  发表于 2010-3-2 10:48:23
thanks a lot!!


2# bobguy

7
soporaeternus 发表于 2010-3-2 10:49:43
  1. /*TST*/
  2. data tst;
  3. do x=rank("A") to rank("Z");
  4. do y=1 to 100 by 1;
  5. ID=compress(y||"_"||byte(x));
  6. output;
  7. end;
  8. end;
  9. keep ID;
  10. run;

  11. /*GRP*/
  12. data p_1;
  13. set tst;
  14. Grp=input(scan(ID,1,"_"),4.);
  15. run;

  16. /*SORT*/
  17. proc sort data=p_1 out=p_2;by Grp;run;quit;

  18. /*RTO of SURVEYSELECT*/
  19. %let rto=0.2;

  20. /*RST*/
  21. data p_3;
  22. retain r;
  23. set p_2;
  24. by Grp;
  25. if first.Grp then do;
  26. r=ranuni(1);
  27. end;
  28. if r<=%sysevalf(&rto);

  29. run;
复制代码

没仔细测试,看看好像行
希望有用......
Let them be hard, but never unjust

8
rockfido 在职认证  发表于 2010-3-2 10:50:18
1.没太明白,可能我还不是太明白SAS中的随机过程,我就只会用PROC SURVEYSELECT。。。。反正我就是想选出一半数量的DATA SET。
2.是的,要么都在,要么都不在。


3# frackdeng

9
rockfido 在职认证  发表于 2010-3-2 10:53:00
非常感谢,我也想给你送20个金币,可是不知道怎么送。。。。。

谁能告诉我一声?

BTW,有朋友给我另一个建议,觉得也不错,分享给大家:

可以把数字跟字母分开成两个变量,然后进行TRANSPOSE,然后再对数字变量进行RANDOM SAMPLING,然后再TRANSPOSE回来,应该也可以的。


7# soporaeternus

10
醉_清风 发表于 2010-3-2 11:04:48
7楼的很好用 学习了
从来不需要想起 永远也不会忘记

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 08:16