楼主: sophiesdaisy
1191 7

[原创博文] 求看程序,求帮助~ [推广有奖]

  • 3关注
  • 1粉丝

已卖:509份资源

讲师

41%

还不是VIP/贵宾

-

威望
0
论坛币
4241 个
通用积分
11.1793
学术水平
5 点
热心指数
6 点
信用等级
3 点
经验
11216 点
帖子
423
精华
0
在线时间
456 小时
注册时间
2008-3-4
最后登录
2024-8-21

楼主
sophiesdaisy 发表于 2012-3-20 11:39:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. %quant_more(10);
  2. %macro pick_vol(o);
  3. data vol&n._&o.(_vol&o.);
  4. set work.quant_history;
  5. where _close>=%eval(&min_close+(&o-1)*&n) and _close<%eval(&min_close+&o*&n);

  6. %let count=%sysfunc(attrn(work.vol&n._&o.,nobs));
  7. _vol&o.=&count;
  8. run;
  9. %mend;
  10. %macro quant_more(n);


  11. %let k=%eval((&minus/&n)+1);%put &k;
  12. %local o=1;
  13. %do %while (o<=k);
  14. %pick_vol(&o);
  15. o=o+1;
  16. %end;
  17. %mend;
复制代码
我的这段程序包括两个宏,pick_vol(o)的作用是将work.quant_history里面的数据进行这样的操作:如果_close这一列的数据在某个范围内,就统计在这个范围内的个数,并赋给count;
quant_more(n)这个宏的作用是调整筛选_close这一列数据的标准,并生成多个标准下的结果。

求助,运行不出结果,没有报错,只把程序重复了一遍。
二维码

扫码加我 拉你入群

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

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

关键词:求帮助 History Close quant Macro close where 程序

沙发
lawren290911 发表于 2012-3-20 12:03:48
是不是因为run后面的分号。。。去了分号呢?

藤椅
sophiesdaisy 发表于 2012-3-20 13:42:35
lawren290911 发表于 2012-3-20 12:03
是不是因为run后面的分号。。。去了分号呢?
不是哦~~

板凳
sophiesdaisy 发表于 2012-3-20 13:43:30
ERROR: 无效的符号变量名 =。
ERROR: 无效的符号变量名 1。

报纸
zhangzachary 发表于 2012-3-20 14:17:13
%local o=1;  -> %local o; %let o=1;
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

地板
sophiesdaisy 发表于 2012-3-20 14:53:32
zhangzachary 发表于 2012-3-20 14:17
%local o=1;  -> %local o; %let o=1;
多谢~ 我换了一种循环方式, 问题就解决了~~~

但是我现在想把多个vol&n._&k. 合并,用了以下的程序,好像不可以,请问应该如何做才可以呢?

data vol&n.;
merge :vol&n._1-vol&n._&k.;
run;

7
邓凤芝 发表于 2012-3-20 15:45:58
看看

8
leini1991 发表于 2012-3-27 14:04:15
把merge语句换成set语句试试?

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

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