楼主: brushington
2440 3

SAS 宏编程问题 [推广有奖]

  • 1关注
  • 0粉丝

本科生

93%

还不是VIP/贵宾

-

威望
0
论坛币
162 个
通用积分
0.0000
学术水平
5 点
热心指数
5 点
信用等级
5 点
经验
1180 点
帖子
55
精华
0
在线时间
87 小时
注册时间
2008-6-28
最后登录
2025-10-19

楼主
brushington 发表于 2015-8-19 21:21:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
Log显示的结果如下:

4497  %macro createdummy;
4498
4499  data DUMMY_DATASET;
4500  set dummy_header(OBS=MAX);
4501  %do i=1 %to %wordcount(&flist);
4502
4503      %do j=1 %to %scan(&VARS_FMT,&i,' ');
4504
4505           %scan(&flist,&i,' ')=&j;
4506           FLAG_DUMMY=1;
4507           OUTPUT ;
4508      %end;
4509  %end;
4510  RUN;
4511  %mend;
4512
4513  %CREATEDUMMY;

报错如下:
ERROR: %EVAL function has no expression to evaluate, or %IF statement has no condition.
ERROR: The %TO value of the %DO J loop is invalid.
ERROR: The macro CREATEDUMMYVARS will stop executing.

flist 里面包含的是变量名 age gender... 共有17个
VARS_FMT里面是各个变量名下的可选输入的种类,如gender 下只有两个,这个数就是2,这个变量里面是各个变量对应的可选的输入的种类表,如 100 2 .....

这个程序的目的是输入各个变量的组合,针对报错的问题,想问问大家觉得怎样才能解决。

谢谢





二维码

扫码加我 拉你入群

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

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

关键词:Expression statement condition Executing evaluate expression function ERROR

沙发
shaode01 学生认证  发表于 2015-8-19 22:40:15 来自手机
brushington 发表于 2015-8-19 21:21
Log显示的结果如下:

4497  %macro createdummy;
第一个错说的是if语句有问题啊

藤椅
shaode01 学生认证  发表于 2015-8-19 23:08:57 来自手机
brushington 发表于 2015-8-19 21:21
Log显示的结果如下:

4497  %macro createdummy;
wordcount是你自定义的函数吧

板凳
Tigflanker 发表于 2015-8-20 14:30:24
1. 数出一个宏变量中有多少个单词这样就行:%sysfunc(countw(&var.))
2. %scan(&VARS_FMT,&i,' ');写错了,应为:%scan(&VARS_FMT,&i,%str( ));
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
sniperhgy + 3 + 4 + 4 + 4 精彩帖子

总评分: 论坛币 + 3  学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 11:27