全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2715 4
2011-07-20
大家好!请教大家一个问题:我在拆分数据集的时候,如果写%let k=1,DATA步是能够正确运行的,但是放到宏里面,就不可以了。请大家帮我看看问题在什么地方。

程序如下:
%macro split;
%do k=1 %to 20;
data h;
set dst;
if _n_=&k.;
rename date=d;
run;
%end;
%mend;
%split;




日志是这样写的:
NOTE: 由调用宏“SPLIT”生成行。
3     data h; set dst;
              ---
              180
ERROR 180-322: 语句无效或未按正确顺序使用。
NOTE: 由调用宏“SPLIT”生成行。
3                      if _n_=&k.;
                       --
                       180
ERROR 180-322: 语句无效或未按正确顺序使用。
NOTE: 由调用宏“SPLIT”生成行。
3                                  rename date=d;
                                   ------
                                   180
ERROR 180-322: 语句无效或未按正确顺序使用。
ERROR: 文件“WORK.H.DATA”不存在。
NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.TST 可能不完整。该步停止时,共有 0 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.03 秒
      CPU 时间          0.01 秒
二维码

扫码加我 拉你入群

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

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

全部回复
2011-7-20 20:15:31
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

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

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

2011-7-21 00:00:18
这个问题解决了~就把SAS关掉,重新开一下就好~呵呵~它累了~
二维码

扫码加我 拉你入群

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

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

2011-7-21 01:39:07
WORK是一个临时library,一般只是在里面测试运行。最好还是自己建一个permanent library吧~
二维码

扫码加我 拉你入群

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

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

2011-7-21 10:44:27
liu022 发表于 2011-7-20 20:12
大家好!请教大家一个问题:我在拆分数据集的时候,如果写%let k=1,DATA步是能够正确运行的,但是放到宏里面,就不可以了。请大家帮我看看问题在什么地方。

程序如下:
%macro split;
%do k=1 %to 20;
data h;
set dst;
if _n_=&k.;
rename date=d;
run;
%end;
%mend;
%split;




日志是这样写的:
NOTE: 由调用宏“SPLIT”生成行。
3     data h; set dst;
              ---
              180
ERROR 180-322: 语句无效或未按正确顺序使用。
NOTE: 由调用宏“SPLIT”生成行。
3                      if _n_=&k.;
                       --
                       180
ERROR 180-322: 语句无效或未按正确顺序使用。
NOTE: 由调用宏“SPLIT”生成行。
3                                  rename date=d;
                                   ------
                                   180
ERROR 180-322: 语句无效或未按正确顺序使用。
ERROR: 文件“WORK.H.DATA”不存在。
NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.TST 可能不完整。该步停止时,共有 0 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.03 秒
      CPU 时间          0.01 秒
The problem can not be reproduced.

31   %macro split;
32   %*do k=1 %to 20;
33   %do k=1 %to 2;
34   data h;
35   set sashelp.class;
36   if _n_=&k.;
37   *rename date=d;
38   run;
39   %end;
40   %mend;
41   %split
NOTE: There were 19 observations read from the data set SASHELP.CLASS.
NOTE: The data set WORK.H has 1 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds

NOTE: There were 19 observations read from the data set SASHELP.CLASS.
NOTE: The data set WORK.H has 1 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群