全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2417 5
2015-09-23
请教大家一个问题,如何重复调用一个程序,并且每次调用时自动生成不同的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 =不同的随机值,请教一下要怎么做
二维码

扫码加我 拉你入群

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

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

全部回复
2015-9-24 08:34:00
帮帮忙啊 ,比较急用
二维码

扫码加我 拉你入群

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

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

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>.

二维码

扫码加我 拉你入群

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

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

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 ...
谢谢,但是程序运行提示语法错误
二维码

扫码加我 拉你入群

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

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

2015-9-25 03:01:33
ybhk 发表于 2015-9-24 20:27
谢谢,但是程序运行提示语法错误
那可能是某个地方的语法问题 我晚些时候查查
二维码

扫码加我 拉你入群

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

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

2015-9-25 08:32:48
ippique 发表于 2015-9-25 03:01
那可能是某个地方的语法问题 我晚些时候查查
谢谢 你的热心帮助
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群