由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教一道SAS MACRO编程的问题。怎么都不明白。谢谢
相关主题
SAS MACRO里的循环不work是怎么回事need sas debug help!! Please...
sas 代码问题SAS里用macro的文件名里数字的问题
Need advice on SAS macro debugging请教一个SAS 数据分配问题
How to the macro regression with if?请教一个SAS Macro的问题
一道sas题 在线求解 50个包子答谢 急啊SAS help : how to macro ods
Help: SAS codeSAS macro question
batch?sas macro 问题
问一个SAS macro的问题Weird SAS macro bugs, 包子重谢!
相关话题的讨论汇总
话题: str话题: macro话题: pound话题: do话题: sas
进入Statistics版参与讨论
1 (共1页)
d*********d
发帖数: 239
1
编了个MACRO程序想把 一个字符串 q1 q2 q5-q8 变成 q1#q2#q5-q8
原始程序如下
OPTIONS MPRINT;
OPTIONS SYMBOLGEN;
%MACRO convert(pound);
%DO i = 1 %TO %SYSFUNC(COUNTW(£,%STR( )));
%IF &i = 1 %THEN %LET list = %QSYSFUNC(SCAN(£,&i,%STR( )));
%ELSE %LET list = &list%STR(#)%QSYSFUNC(SCAN(£,&i,%STR( )));
%END;
%MEND convert;
%PUT %convert(q1 q2 q5-q8);
不给最终结果。mprint显示到q1#q2生成了,但不生成最后结果。程序也没出错。
当我把%DO循环改成
%DO i = 1 %TO %EVAL(%SYSFUNC(COUNTW(£,%STR( )))+1);
维持其他不变,就可以得到最终结果。
虽然得到了最终结果,但不明白为什么循环部分要加1.COUNTW结果就是3,循环到3就应
该完成所有的更改了吗?
请大牛们不吝赐教!!
谢谢。
a****2
发帖数: 6
2
小弟拙见哈
在end和mend之间加一句“%put list is &list;” 就可以看到已经convert好了
貌似list每次是resolve上一个循环的结果,所以+1也可以看到,不+1的话看到的是i=2
的list

【在 d*********d 的大作中提到】
: 编了个MACRO程序想把 一个字符串 q1 q2 q5-q8 变成 q1#q2#q5-q8
: 原始程序如下
: OPTIONS MPRINT;
: OPTIONS SYMBOLGEN;
: %MACRO convert(pound);
: %DO i = 1 %TO %SYSFUNC(COUNTW(£,%STR( )));
: %IF &i = 1 %THEN %LET list = %QSYSFUNC(SCAN(£,&i,%STR( )));
: %ELSE %LET list = &list%STR(#)%QSYSFUNC(SCAN(£,&i,%STR( )));
: %END;
: %MEND convert;

d*********d
发帖数: 239
3
谢谢,貌似是这样的。感觉像是SAS 的BUG.如果用mprint的话看上去同于一个循环i,
会连续调用两次。不明白SAS为什么不能改一下,如果没啥实际作用的话。

=2

【在 a****2 的大作中提到】
: 小弟拙见哈
: 在end和mend之间加一句“%put list is &list;” 就可以看到已经convert好了
: 貌似list每次是resolve上一个循环的结果,所以+1也可以看到,不+1的话看到的是i=2
: 的list

1 (共1页)
进入Statistics版参与讨论
相关主题
Weird SAS macro bugs, 包子重谢!一道sas题 在线求解 50个包子答谢 急啊
【包子】求问个简单sas macro问题Help: SAS code
一个常见的问题batch?
问个SAS题目,问一个SAS macro的问题
SAS MACRO里的循环不work是怎么回事need sas debug help!! Please...
sas 代码问题SAS里用macro的文件名里数字的问题
Need advice on SAS macro debugging请教一个SAS 数据分配问题
How to the macro regression with if?请教一个SAS Macro的问题
相关话题的讨论汇总
话题: str话题: macro话题: pound话题: do话题: sas