楼主: ybhk
2173 5

如何在重复调用一个程序时,每次给seed一个不同随机种子 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

2%

还不是VIP/贵宾

-

威望
0
论坛币
39 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1115 点
帖子
84
精华
0
在线时间
94 小时
注册时间
2012-6-2
最后登录
2017-10-22

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教大家一个问题,如何重复调用一个程序,并且每次调用时自动生成不同的seed,例如:
data a;
  do i=1000 to 9999;
     x=i;
     output;
  end;
run;

proc surveyselect data=a out=e outall method=srs samprate=0.8 seed =12345 noprint;
run;

我想重复调用proc步50次 ,每次生成不同的数据集,即out=不同的数据集,每次调用Proc  surveyselect时  seed =不同的随机值,请教一下要怎么做
二维码

扫码加我 拉你入群

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

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

关键词:seed see surveyselect 请教大家一个问题 Surveys method 程序 如何

沙发
ybhk 发表于 2015-9-24 08:34:00 |只看作者 |坛友微信交流群
帮帮忙啊 ,比较急用

使用道具

藤椅
ippique 发表于 2015-9-24 16:10:33 |只看作者 |坛友微信交流群
%macro random(n,mul,ini,rn);
   %do i=1 %to &n;
      proc surveyselect data=a out=&n outall method=srs samprate=0.8 seed =(mul*ranuni(rn)+ini) noprint;
      run;
   %end;
%mend random;
应该是可以满足你的要求。n是设置你循环多少次,同时output到一个新的数据集
mul*ranuni(rn)+ini would generate a random number from an interval, and the formula would be a * ranuni(seed) + b, which return a random number from <b, a+b>.

使用道具

板凳
ybhk 发表于 2015-9-24 20:27:51 |只看作者 |坛友微信交流群
ippique 发表于 2015-9-24 16:10
%macro random(n,mul,ini,rn);
   %do i=1 %to &n;
      proc surveyselect data=a out=&n outall meth ...
谢谢,但是程序运行提示语法错误

使用道具

报纸
ippique 发表于 2015-9-25 03:01:33 |只看作者 |坛友微信交流群
ybhk 发表于 2015-9-24 20:27
谢谢,但是程序运行提示语法错误
那可能是某个地方的语法问题 我晚些时候查查

使用道具

地板
ybhk 发表于 2015-9-25 08:32:48 |只看作者 |坛友微信交流群
ippique 发表于 2015-9-25 03:01
那可能是某个地方的语法问题 我晚些时候查查
谢谢 你的热心帮助

使用道具

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

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

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

GMT+8, 2024-4-24 07:01