请选择 进入手机版 | 继续访问电脑版
楼主: guopeng8899@126
3517 5

[有偿编程] sas 宏问题请教 [推广有奖]

  • 7关注
  • 0粉丝

博士生

1%

还不是VIP/贵宾

-

威望
0
论坛币
2711 个
通用积分
1.5300
学术水平
6 点
热心指数
2 点
信用等级
2 点
经验
35898 点
帖子
111
精华
0
在线时间
313 小时
注册时间
2014-3-13
最后登录
2024-3-13

guopeng8899@126 学生认证  发表于 2017-4-27 23:31:34 |显示全部楼层 |坛友微信交流群
50论坛币
请教各位,我是想用面板数据从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小白在这里跪谢了!!!!

最佳答案

yingj7093 查看完整内容

兄弟 ,proc reg data=&table.; model ; output out= data_out keyword= (residual=r predicted=p); run; 建议你自己多查sas help 文档。写的非常清楚。
关键词:Processing Procedure datasets processI activity
yingj7093 在职认证  发表于 2017-4-27 23:31:35 |显示全部楼层 |坛友微信交流群
兄弟 ,proc reg data=&table.;
           model              ;
           output  out= data_out   keyword=   (residual=r   predicted=p);
           run;
建议你自己多查sas help 文档。写的非常清楚。

使用道具

guopeng8899@126 学生认证  发表于 2017-4-27 23:32:08 |显示全部楼层 |坛友微信交流群
自己顶一下!!!

使用道具

wklkw 在职认证  发表于 2017-4-28 00:49:27 |显示全部楼层 |坛友微信交流群
粗看了下,在reg之前应该要对数据集先sort一下

使用道具

guopeng8899@126 学生认证  发表于 2017-4-28 08:25:01 |显示全部楼层 |坛友微信交流群
谢谢您的建议,确实不会报错了。请问怎么样才能把每次估计的残差放到原始数据里呢?需要什么命令?

使用道具

learsaas 发表于 2017-4-28 09:17:24 |显示全部楼层 |坛友微信交流群
guopeng8899@126 发表于 2017-4-28 08:25
谢谢您的建议,确实不会报错了。请问怎么样才能把每次估计的残差放到原始数据里呢?需要什么命令?
在output语句中加入R=新变量名就可以输出残差。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 22:45