- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 28 个
- 通用积分
- 1.0600
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 581 点
- 帖子
- 25
- 精华
- 0
- 在线时间
- 39 小时
- 注册时间
- 2014-9-18
- 最后登录
- 2020-2-14
大专生
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
- 28 个
- 通用积分
- 1.0600
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 581 点
- 帖子
- 25
- 精华
- 0
- 在线时间
- 39 小时
- 注册时间
- 2014-9-18
- 最后登录
- 2020-2-14
| 无聊 2019-10-23 16:02:44 |
---|
签到天数: 10 天 连续签到: 1 天 [LV.3]偶尔看看II
|
5论坛币
小弱需要编一段程序,大概是要把已经分好的25组数据(先按size再按BM)分别计算超额收益率,但程序涉及到宏本人实在无法驾驭,不知道论坛上有没有大神可以帮忙?
程序如下:
%macro _group;
%do np1=0 %to 4;
%do np2=0 %to 4;
data _G&np1.&np2.;
set work.result00;
where(r_cvalue=&np1. r_bm=&np2.);
run;
Proc univariate data=_G&np1.&np2.;
var return;
weight cvalue;
output out=nRe&np1.&np2. mean=nReturn&np1.&np2.;
run;
%macro minter;
data _null&np1.&np2.;
set nRe&np1.&np2.;
call symput('nRetern&np1.&np2.',nReturn&np1.&np2.);
run;
%mend minter;
%minter
data work._1G&np1.&np2.;
set work._G&np1.&np2.;
return=return-%sysevalf(&nReturnn&np1.&np2.);
run;
%end;
%End;
%mend _group;
%_group
返回的日志如下:
22: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 22-322: 语法错误,期望下列之一: !, !!, &, *, **, +, -, /, <, <=, <>, =, >, >=, AND, EQ, GE, GT, LE, LT, NE, OR, ^=, |, ||,
~=.
76: 无法确定 LINE 和 COLUMN。
NOTE: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 76-322: 语法错误,语句将被忽略。
ERROR: 解析 WHERE 子句时出现语法错误。
NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK._G00 可能不完整。该步停止时,共有 0 个观测和 10 个变量。
WARNING: 数据集 WORK._G00 由于该步已停止,而没有被替换。
WARNING: 没有解析符号引用 NRETURNN。
22: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 22-322: 语法错误,期望下列之一: 名称, 带引号的字符串, 数值常数, 日期时间常数, 缺失值, INPUT, PUT.
WARNING: 没有解析符号引用 NRETURNN00。
ERROR: 在需要数值操作数的 %EVAL 函数或 %IF 条件中发现字符操作数。条件是: &nReturnn00
NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK._1G00 可能不完整。该步停止时,共有 0 个观测和 10 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.01 秒
CPU 时间 0.00 秒
ERROR: 宏 _GROUP 将终止执行。
以上,提前谢过各位!
|
|