全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5736 7
2016-05-18
LZ需要用DO对时间变量循环,循环里面又要用PROC means。。。class分类。。这样是可行的吗,为什么写出来就是不对啊
二维码

扫码加我 拉你入群

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

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

全部回复
2016-5-18 09:38:39
%do……%end
二维码

扫码加我 拉你入群

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

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

2016-5-18 11:29:35
孤单的我们 发表于 2016-5-18 09:38
%do……%end
DATA kunming.chuli;
set kunming.endoc;
%let x='19:00't;
%let y='00:15't;
%let z='19:59't;
%macro dateira(x,y,z);
%do i=x %to z %by y;
***%do date = %sysfunc(putn(&x,best.)) %to %sysfunc(putn(&z,best.)) %by %sysfunc(putn(&y,best.));
PROC means data=kunming.chuli;
var e;
class b;
RUN;
%end;
%mend;
%dateira;
RUN;
我是这样写的,但是出错了,提示说系统没有宏编译。而且do循环没有闭合
二维码

扫码加我 拉你入群

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

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

2016-5-18 15:28:26
zt10255024 发表于 2016-5-18 11:29
DATA kunming.chuli;
set kunming.endoc;
%let x='19:00't;
%macro  %mend写在data步的外面。

%macro
data ……
……
run;
%mend;
二维码

扫码加我 拉你入群

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

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

2016-5-18 15:49:05
孤单的我们 发表于 2016-5-18 15:28
%macro  %mend写在data步的外面。

%macro
大神求不要不放弃我。。我按照你说的做了还是有问题。。下面是运行后显示的日志:
179  %macro dateira(x,y,z);
180  DATA kunming.chuli;
181  set kunming.endoc;
182  %let x='19:00't;
183  %let y='00:15't;
184  %let z='19:59't;
185  %do i=x %to z %by y;
186  **%do date = %sysfunc(putn(&x,best.)) %to %sysfunc(putn(&z,best.)) %by %sysfunc(putn(&y,best.))
186! ;
187  PROC means data=kunming.chuli;
188  var e;
189  class b;
190  RUN;
191  %end;
192  RUN;
193  %mend;
ERROR: 有 1 个未闭合的 %DO 语句,系统将不编译宏 DATEIRA。
194  %dateira;
WARNING: 没有解析宏 DATEIRA 的调用。
二维码

扫码加我 拉你入群

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

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

2016-5-18 16:29:20
你如果用这个宏的话,等于data步里有用了proc步吧,应该不可以吧
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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