楼主: augustin4
4449 14

求助,关于sas连续执行过程步 [推广有奖]

11
augustin4 发表于 2014-10-24 16:21:57
sniperhgy 发表于 2014-10-24 10:10
第二个问题楼主的貌似已经自己解决了啊?还是楼主有其他的要求,我看楼主那个代码是可以应用的啊……
这个代码是有问题的:
25行我先输入了一个方案的系数,
然后在27行输入随机数,次数为随机数的总数,这时,方案1的结果计算完了
然后data步回到开头,25行再次读入方案2的系数,接着往下读入随机数
但随机数已经读完了(我想让它从头读)

12
augustin4 发表于 2014-10-24 16:29:51
sniperhgy 发表于 2014-10-24 10:21
两个问题,咱们一一解释一下:

1.%do是否可以像do那样直接使用 :
多谢回答。
但麻烦你再给我讲一下
1.如板凳楼的21行
set para_list(firstobs = &i. obs = &i.);
为什么i后加了句号"."?好像不加结果也一样
2. %put mvar&i = &&mvar&i;是因为
调用一个只改变后缀的宏变量需要在不变的名字部分加上两个&&吗?

13
sniperhgy 发表于 2014-10-24 18:19:38
augustin4 发表于 2014-10-24 16:29
多谢回答。
但麻烦你再给我讲一下
1.如板凳楼的21行
1.点代表解析结束,编程的习惯。

2.这个问题请自己试试看,只写一个&看能不能出现正确的结果,要是什么都问,自己还怎么思考啊?

14
augustin4 发表于 2014-10-25 09:48:40
sniperhgy 发表于 2014-10-24 10:10
第二个问题楼主的貌似已经自己解决了啊?还是楼主有其他的要求,我看楼主那个代码是可以应用的啊……
第二个代码终于解决了。我发现直接在调用随机数的数据步里用set 多次串接随机数的数据集就可以了。
于是就编了一个宏来多次循环随机数数据集的名字:
  1. *-------simulated是生成的两个随机数------*;
  2. data simulated;
  3. input dm bp;
  4. datalines;
  5. 0.57303 1.12506
  6. 0.70363 1.25487
  7. 0.64928 1.20948
  8. 0.69713 1.33010
  9. 0.66509 1.01796
  10. ;
  11. run;
  12. *--------数出随机数的个数-------*;
  13. proc sql noprint;
  14. select count(*) into :countran from simulated;
  15. quit;
  16. *--------输入两种可能方案的系数-------*;
  17. data costprice;
  18. input dmcost bpcost;
  19. datalines;
  20. 1 2
  21. 3 1
  22. ;
  23. *--------定义宏simulated(n)来多次重复随机数数据集,n为重复的次数-----*;
  24. %macro simulated(n);
  25. %do i=1 %to &n;
  26. simulated
  27. %end;
  28. %mend simulated;
  29. *-------先输入系数,再输入所有随机数,计算盈利大于10的个数,记为qualified,再用频率估计概率,输出--------*;
  30. data count(keep=prob);
  31. set costprice;
  32.   do i=1 to &countran;
  33.           set %simulated(2);
  34.                   c+1;
  35.      hedgerevenue=dmcost*dm+bpcost*bp;
  36.          if hedgerevenue>10 then qualified+1;
  37.          prob=qualified/&countran;
  38.          if c=&countran then do;
  39.             output;
  40.                         c=0;
  41.                 end;
  42.   end;
  43. run;
复制代码

15
mengha 发表于 2016-2-5 11:01:15
mark一下

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

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