请教各位,我是想用面板数据从2005年到2015年每年分别做一个回归(别的考虑没用 proc reg data; by year) ,这里编了一个宏,但是一直运行不了。以下是代码
proc datasets nolist lib=work ;
delete all_ds oreg_ds1;
run;
%macro rollreg;
%local date1 date2;
%do i =2005 %to 2015;
proc datasets nolist lib=work noprint;
delete oreg_ds1;
run;
%let date1=%eval(&i);
%let date2=%eval(&i)+1;
proc reg data= data_ann_simplify(where=(yearend between &date1 and &date2)) noprint;
by yearend;
model cumlogret5= bm5 rb5;
output out=oreg_ds1;
run;
data oreg_ds1;
set oreg_ds1;
date1=&date1;
date2=&date2;
*format date1 date2 yyyy.;
run;
proc datasets lib=work noprint;
append base=all_ds data=oreg_ds1 force;
run;
%end;
data out_ds;
set all_ds;
run;
%mend rollreg;
%rollreg;
quit;
以下是错误提示
3270
3271 %rollreg;
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.09 秒
CPU 时间 0.00 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.28 秒
CPU 时间 0.09 秒
NOTE: 数据集 WORK.OREG_DS1 有 6926 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.02 秒
CPU 时间 0.03 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 6926 个观测
NOTE: 添加了 6926 个观测。
NOTE: 数据集 WORK.ALL_DS 有 358076 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.08 秒
CPU 时间 0.03 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.03 秒
CPU 时间 0.03 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.26 秒
CPU 时间 0.04 秒
NOTE: 数据集 WORK.OREG_DS1 有 6567 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.01 秒
CPU 时间 0.01 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 6567 个观测
NOTE: 添加了 6567 个观测。
NOTE: 数据集 WORK.ALL_DS 有 364643 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.08 秒
CPU 时间 0.03 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.04 秒
CPU 时间 0.01 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.27 秒
CPU 时间 0.03 秒
NOTE: 数据集 WORK.OREG_DS1 有 6188 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.01 秒
CPU 时间 0.01 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 6188 个观测
NOTE: 添加了 6188 个观测。
NOTE: 数据集 WORK.ALL_DS 有 370831 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.08 秒
CPU 时间 0.06 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.07 秒
CPU 时间 0.01 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.31 秒
CPU 时间 0.07 秒
NOTE: 数据集 WORK.OREG_DS1 有 6008 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.02 秒
CPU 时间 0.03 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 6008 个观测
NOTE: 添加了 6008 个观测。
NOTE: 数据集 WORK.ALL_DS 有 376839 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.06 秒
CPU 时间 0.00 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.06 秒
CPU 时间 0.03 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.22 秒
CPU 时间 0.09 秒
NOTE: 数据集 WORK.OREG_DS1 有 5985 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.02 秒
CPU 时间 0.03 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5985 个观测
NOTE: 添加了 5985 个观测。
NOTE: 数据集 WORK.ALL_DS 有 382824 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.06 秒
CPU 时间 0.00 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.05 秒
CPU 时间 0.01 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.27 秒
CPU 时间 0.04 秒
NOTE: 数据集 WORK.OREG_DS1 有 5942 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.02 秒
CPU 时间 0.01 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5942 个观测
NOTE: 添加了 5942 个观测。
NOTE: 数据集 WORK.ALL_DS 有 388766 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.05 秒
CPU 时间 0.03 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.04 秒
CPU 时间 0.01 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.22 秒
CPU 时间 0.04 秒
NOTE: 数据集 WORK.OREG_DS1 有 5890 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.02 秒
CPU 时间 0.01 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5890 个观测
NOTE: 添加了 5890 个观测。
NOTE: 数据集 WORK.ALL_DS 有 394656 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.07 秒
CPU 时间 0.01 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.06 秒
CPU 时间 0.01 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.26 秒
CPU 时间 0.04 秒
NOTE: 数据集 WORK.OREG_DS1 有 5763 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.03 秒
CPU 时间 0.01 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5763 个观测
NOTE: 添加了 5763 个观测。
NOTE: 数据集 WORK.ALL_DS 有 400419 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.07 秒
CPU 时间 0.04 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.05 秒
CPU 时间 0.01 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.28 秒
CPU 时间 0.01 秒
NOTE: 数据集 WORK.OREG_DS1 有 5575 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.01 秒
CPU 时间 0.01 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5575 个观测
NOTE: 添加了 5575 个观测。
NOTE: 数据集 WORK.ALL_DS 有 405994 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.06 秒
CPU 时间 0.03 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.03 秒
CPU 时间 0.01 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.23 秒
CPU 时间 0.04 秒
NOTE: 数据集 WORK.OREG_DS1 有 3212 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.02 秒
CPU 时间 0.03 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 3212 个观测
NOTE: 添加了 3212 个观测。
NOTE: 数据集 WORK.ALL_DS 有 409206 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.07 秒
CPU 时间 0.01 秒
NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.04 秒
CPU 时间 0.01 秒
NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
实际时间 0.17 秒
CPU 时间 0.01 秒
NOTE: 数据集 WORK.OREG_DS1 有 469 个观测和 5 个变量。
48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.02 秒
CPU 时间 0.01 秒
NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 469 个观测
NOTE: 添加了 469 个观测。
NOTE: 数据集 WORK.ALL_DS 有 409675 个观测和 5 个变量。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
实际时间 0.06 秒
CPU 时间 0.01 秒
NOTE: 从数据集 WORK.ALL_DS. 读取了 409675 个观测
NOTE: 数据集 WORK.OUT_DS 有 409675 个观测和 5 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.06 秒
CPU 时间 0.04 秒
3272 quit;
问题:
(一)请问各位老师,这个问题应该怎么处理?
(二)另外,我需要每个回归的残差,应该用什么命令得到,并且能够merge到原有的数据中
sas小白在这里跪谢了!!!!