楼主: zt10255024
5163 7

SAS对时间变量循环,循环语句里面怎么用PROC [推广有奖]

  • 1关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
39 点
帖子
5
精华
0
在线时间
9 小时
注册时间
2015-3-23
最后登录
2016-6-7

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
LZ需要用DO对时间变量循环,循环里面又要用PROC means。。。class分类。。这样是可行的吗,为什么写出来就是不对啊
二维码

扫码加我 拉你入群

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

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

关键词:循环语句 时间变量 ROC means mean

沙发
孤单的我们 发表于 2016-5-18 09:38:39 |只看作者 |坛友微信交流群
%do……%end

使用道具

藤椅
zt10255024 发表于 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;

使用道具

报纸
zt10255024 发表于 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步吧,应该不可以吧

使用道具

7
zt10255024 发表于 2016-5-18 16:52:23 |只看作者 |坛友微信交流群
麦弥 发表于 2016-5-18 16:29
你如果用这个宏的话,等于data步里有用了proc步吧,应该不可以吧
对,我就是想知道data步里能不能用proc步,看了论坛,有人说可以用宏编译

使用道具

8
麦弥 发表于 2016-6-3 12:58:46 |只看作者 |坛友微信交流群
zt10255024 发表于 2016-5-18 16:52
对,我就是想知道data步里能不能用proc步,看了论坛,有人说可以用宏编译
用call execute()应该是可以,今天刚刚接触到的,你可以试一下。
http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a000543697.htm
例子里面就是data步里使用的proc步

使用道具

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

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

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

GMT+8, 2024-4-27 02:07